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

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

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site dd1a1986a -> a949969bf


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html
index a3ba133..9e2d08d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html
@@ -27,180 +27,179 @@
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.procedure2;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.util.ArrayList;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.commons.logging.Log;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.commons.logging.LogFactory;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.FileSystem;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.fs.Path;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.After;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.Before;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import static org.junit.Assert.assertEquals;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import static org.junit.Assert.assertTrue;<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>@Category({MasterTests.class, SmallTests.class})<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class TestStateMachineProcedure {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private static final Log LOG = LogFactory.getLog(TestStateMachineProcedure.class);<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static final Exception TEST_FAILURE_EXCEPTION = new Exception("test failure") {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    @Override<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    public boolean equals(final Object other) {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      if (this == other) return true;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>      if (!(other instanceof Exception)) return false;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      // we are going to serialize the exception in the test,<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      // so the instance comparison will not match<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      return getMessage().equals(((Exception)other).getMessage());<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    }<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>    @Override<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    public int hashCode() {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      return getMessage().hashCode();<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><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private ProcedureStore procStore;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private HBaseCommonTestingUtility htu;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private FileSystem fs;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private Path testDir;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private Path logDir;<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  @Before<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public void setUp() throws IOException {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    htu = new HBaseCommonTestingUtility();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    testDir = htu.getDataTestDir();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>    logDir = new Path(testDir, "proc-logs");<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    procStore = ProcedureTestingUtility.createWalStore(htu.getConfiguration(), fs, logDir);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    procExecutor = new ProcedureExecutor(htu.getConfiguration(), new TestProcEnv(), procStore);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<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>  @After<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public void tearDown() throws IOException {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, false);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    assertTrue("expected executor to be running", procExecutor.isRunning());<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>    procExecutor.stop();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    procStore.stop(false);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    fs.delete(logDir, true);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  @Test<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public void testChildOnLastStep() {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<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>  @Test<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public void testChildOnLastStepDoubleExecution() throws Exception {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<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>  @Test<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public void testChildOnLastStepWithRollback() {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    assertEquals(3, procExecutor.getEnvironment().rollbackCount.get());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  @Test<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public void testChildOnLastStepWithRollbackDoubleExecution() throws Exception {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId, true);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    assertEquals(6, procExecutor.getEnvironment().rollbackCount.get());<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<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 enum TestSMProcedureState { STEP_1, STEP_2 };<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static class TestSMProcedure<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      extends StateMachineProcedure&lt;TestProcEnv, TestSMProcedureState&gt; {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    protected Flow executeFromState(TestProcEnv env, TestSMProcedureState state) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      LOG.info("EXEC " + state + " " + this);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      env.execCount.incrementAndGet();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      switch (state) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        case STEP_1:<a name="line.145"></a>
-<span class="sourceLineNo">146</span>          setNextState(TestSMProcedureState.STEP_2);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>          break;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        case STEP_2:<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          addChildProcedure(new SimpleChildProcedure());<a name="line.149"></a>
-<span class="sourceLineNo">150</span>          return Flow.NO_MORE_STATE;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      return Flow.HAS_MORE_STATE;<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>    protected void rollbackState(TestProcEnv env, TestSMProcedureState state) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      LOG.info("ROLLBACK " + state + " " + this);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      env.rollbackCount.incrementAndGet();<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>    protected TestSMProcedureState getState(int stateId) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return TestSMProcedureState.values()[stateId];<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>    protected int getStateId(TestSMProcedureState state) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      return state.ordinal();<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>    protected TestSMProcedureState getInitialState() {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      return TestSMProcedureState.STEP_1;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public static class SimpleChildProcedure extends NoopProcedure&lt;TestProcEnv&gt; {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    protected Procedure[] execute(TestProcEnv env) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      LOG.info("EXEC " + this);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      env.execCount.incrementAndGet();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      if (env.triggerChildRollback) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        setFailure("test-failure", TEST_FAILURE_EXCEPTION);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      return null;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    protected void rollback(TestProcEnv env) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      LOG.info("ROLLBACK " + this);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      env.rollbackCount.incrementAndGet();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  public class TestProcEnv {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    AtomicInteger execCount = new AtomicInteger(0);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    AtomicInteger rollbackCount = new AtomicInteger(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    boolean triggerChildRollback = false;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>}<a name="line.195"></a>
+<span class="sourceLineNo">022</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.logging.Log;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.logging.LogFactory;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.fs.FileSystem;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.Path;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.junit.After;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.junit.Before;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.junit.Test;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.experimental.categories.Category;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>import static org.junit.Assert.assertEquals;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import static org.junit.Assert.assertTrue;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>@Category({MasterTests.class, SmallTests.class})<a name="line.42"></a>
+<span class="sourceLineNo">043</span>public class TestStateMachineProcedure {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  private static final Log LOG = LogFactory.getLog(TestStateMachineProcedure.class);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private static final Exception TEST_FAILURE_EXCEPTION = new Exception("test failure") {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    public boolean equals(final Object other) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      if (this == other) return true;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      if (!(other instanceof Exception)) return false;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      // we are going to serialize the exception in the test,<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      // so the instance comparison will not match<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      return getMessage().equals(((Exception)other).getMessage());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>    @Override<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    public int hashCode() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      return getMessage().hashCode();<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><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private ProcedureStore procStore;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private HBaseCommonTestingUtility htu;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private FileSystem fs;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private Path testDir;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private Path logDir;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  @Before<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public void setUp() throws IOException {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    htu = new HBaseCommonTestingUtility();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    testDir = htu.getDataTestDir();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>    logDir = new Path(testDir, "proc-logs");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    procStore = ProcedureTestingUtility.createWalStore(htu.getConfiguration(), fs, logDir);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    procExecutor = new ProcedureExecutor(htu.getConfiguration(), new TestProcEnv(), procStore);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  @After<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public void tearDown() throws IOException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, false);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    assertTrue("expected executor to be running", procExecutor.isRunning());<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>    procExecutor.stop();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    procStore.stop(false);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    fs.delete(logDir, true);<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>  @Test<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public void testChildOnLastStep() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @Test<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public void testChildOnLastStepDoubleExecution() throws Exception {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  @Test<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public void testChildOnLastStepWithRollback() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    assertEquals(3, procExecutor.getEnvironment().rollbackCount.get());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<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>  @Test<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  public void testChildOnLastStepWithRollbackDoubleExecution() throws Exception {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId, true);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    assertEquals(6, procExecutor.getEnvironment().rollbackCount.get());<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public enum TestSMProcedureState { STEP_1, STEP_2 };<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public static class TestSMProcedure<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      extends StateMachineProcedure&lt;TestProcEnv, TestSMProcedureState&gt; {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    protected Flow executeFromState(TestProcEnv env, TestSMProcedureState state) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      LOG.info("EXEC " + state + " " + this);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      env.execCount.incrementAndGet();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      switch (state) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        case STEP_1:<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          setNextState(TestSMProcedureState.STEP_2);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          break;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        case STEP_2:<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          addChildProcedure(new SimpleChildProcedure());<a name="line.148"></a>
+<span class="sourceLineNo">149</span>          return Flow.NO_MORE_STATE;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      return Flow.HAS_MORE_STATE;<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>    protected void rollbackState(TestProcEnv env, TestSMProcedureState state) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      LOG.info("ROLLBACK " + state + " " + this);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      env.rollbackCount.incrementAndGet();<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>    protected TestSMProcedureState getState(int stateId) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return TestSMProcedureState.values()[stateId];<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>    protected int getStateId(TestSMProcedureState state) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return state.ordinal();<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>    protected TestSMProcedureState getInitialState() {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      return TestSMProcedureState.STEP_1;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public static class SimpleChildProcedure extends NoopProcedure&lt;TestProcEnv&gt; {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    protected Procedure[] execute(TestProcEnv env) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      LOG.info("EXEC " + this);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      env.execCount.incrementAndGet();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      if (env.triggerChildRollback) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        setFailure("test-failure", TEST_FAILURE_EXCEPTION);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return null;<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>    protected void rollback(TestProcEnv env) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      LOG.info("ROLLBACK " + this);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      env.rollbackCount.incrementAndGet();<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>  public class TestProcEnv {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    AtomicInteger execCount = new AtomicInteger(0);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    AtomicInteger rollbackCount = new AtomicInteger(0);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    boolean triggerChildRollback = false;<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html
index a3ba133..9e2d08d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html
@@ -27,180 +27,179 @@
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.procedure2;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.util.ArrayList;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.commons.logging.Log;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.commons.logging.LogFactory;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.FileSystem;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.fs.Path;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.After;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.Before;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import static org.junit.Assert.assertEquals;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import static org.junit.Assert.assertTrue;<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>@Category({MasterTests.class, SmallTests.class})<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class TestStateMachineProcedure {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private static final Log LOG = LogFactory.getLog(TestStateMachineProcedure.class);<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static final Exception TEST_FAILURE_EXCEPTION = new Exception("test failure") {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    @Override<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    public boolean equals(final Object other) {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      if (this == other) return true;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>      if (!(other instanceof Exception)) return false;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      // we are going to serialize the exception in the test,<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      // so the instance comparison will not match<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      return getMessage().equals(((Exception)other).getMessage());<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    }<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>    @Override<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    public int hashCode() {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      return getMessage().hashCode();<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><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private ProcedureStore procStore;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private HBaseCommonTestingUtility htu;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private FileSystem fs;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private Path testDir;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private Path logDir;<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  @Before<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public void setUp() throws IOException {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    htu = new HBaseCommonTestingUtility();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    testDir = htu.getDataTestDir();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>    logDir = new Path(testDir, "proc-logs");<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    procStore = ProcedureTestingUtility.createWalStore(htu.getConfiguration(), fs, logDir);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    procExecutor = new ProcedureExecutor(htu.getConfiguration(), new TestProcEnv(), procStore);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<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>  @After<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public void tearDown() throws IOException {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, false);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    assertTrue("expected executor to be running", procExecutor.isRunning());<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>    procExecutor.stop();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    procStore.stop(false);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    fs.delete(logDir, true);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  @Test<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public void testChildOnLastStep() {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<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>  @Test<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public void testChildOnLastStepDoubleExecution() throws Exception {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<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>  @Test<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public void testChildOnLastStepWithRollback() {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    assertEquals(3, procExecutor.getEnvironment().rollbackCount.get());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  @Test<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public void testChildOnLastStepWithRollbackDoubleExecution() throws Exception {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId, true);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    assertEquals(6, procExecutor.getEnvironment().rollbackCount.get());<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<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 enum TestSMProcedureState { STEP_1, STEP_2 };<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static class TestSMProcedure<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      extends StateMachineProcedure&lt;TestProcEnv, TestSMProcedureState&gt; {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    protected Flow executeFromState(TestProcEnv env, TestSMProcedureState state) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      LOG.info("EXEC " + state + " " + this);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      env.execCount.incrementAndGet();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      switch (state) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        case STEP_1:<a name="line.145"></a>
-<span class="sourceLineNo">146</span>          setNextState(TestSMProcedureState.STEP_2);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>          break;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        case STEP_2:<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          addChildProcedure(new SimpleChildProcedure());<a name="line.149"></a>
-<span class="sourceLineNo">150</span>          return Flow.NO_MORE_STATE;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      return Flow.HAS_MORE_STATE;<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>    protected void rollbackState(TestProcEnv env, TestSMProcedureState state) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      LOG.info("ROLLBACK " + state + " " + this);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      env.rollbackCount.incrementAndGet();<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>    protected TestSMProcedureState getState(int stateId) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return TestSMProcedureState.values()[stateId];<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>    protected int getStateId(TestSMProcedureState state) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      return state.ordinal();<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>    protected TestSMProcedureState getInitialState() {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      return TestSMProcedureState.STEP_1;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public static class SimpleChildProcedure extends NoopProcedure&lt;TestProcEnv&gt; {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    protected Procedure[] execute(TestProcEnv env) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      LOG.info("EXEC " + this);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      env.execCount.incrementAndGet();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      if (env.triggerChildRollback) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        setFailure("test-failure", TEST_FAILURE_EXCEPTION);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      return null;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    protected void rollback(TestProcEnv env) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      LOG.info("ROLLBACK " + this);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      env.rollbackCount.incrementAndGet();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  public class TestProcEnv {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    AtomicInteger execCount = new AtomicInteger(0);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    AtomicInteger rollbackCount = new AtomicInteger(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    boolean triggerChildRollback = false;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>}<a name="line.195"></a>
+<span class="sourceLineNo">022</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.logging.Log;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.logging.LogFactory;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.fs.FileSystem;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.Path;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.junit.After;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.junit.Before;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.junit.Test;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.experimental.categories.Category;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>import static org.junit.Assert.assertEquals;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import static org.junit.Assert.assertTrue;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>@Category({MasterTests.class, SmallTests.class})<a name="line.42"></a>
+<span class="sourceLineNo">043</span>public class TestStateMachineProcedure {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  private static final Log LOG = LogFactory.getLog(TestStateMachineProcedure.class);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private static final Exception TEST_FAILURE_EXCEPTION = new Exception("test failure") {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    public boolean equals(final Object other) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      if (this == other) return true;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      if (!(other instanceof Exception)) return false;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      // we are going to serialize the exception in the test,<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      // so the instance comparison will not match<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      return getMessage().equals(((Exception)other).getMessage());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>    @Override<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    public int hashCode() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      return getMessage().hashCode();<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><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private ProcedureStore procStore;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private HBaseCommonTestingUtility htu;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private FileSystem fs;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private Path testDir;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private Path logDir;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  @Before<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public void setUp() throws IOException {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    htu = new HBaseCommonTestingUtility();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    testDir = htu.getDataTestDir();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>    logDir = new Path(testDir, "proc-logs");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    procStore = ProcedureTestingUtility.createWalStore(htu.getConfiguration(), fs, logDir);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    procExecutor = new ProcedureExecutor(htu.getConfiguration(), new TestProcEnv(), procStore);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  @After<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public void tearDown() throws IOException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, false);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    assertTrue("expected executor to be running", procExecutor.isRunning());<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>    procExecutor.stop();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    procStore.stop(false);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    fs.delete(logDir, true);<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>  @Test<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public void testChildOnLastStep() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @Test<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public void testChildOnLastStepDoubleExecution() throws Exception {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  @Test<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public void testChildOnLastStepWithRollback() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    assertEquals(3, procExecutor.getEnvironment().rollbackCount.get());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<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>  @Test<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  public void testChildOnLastStepWithRollbackDoubleExecution() throws Exception {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId, true);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    assertEquals(6, procExecutor.getEnvironment().rollbackCount.get());<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public enum TestSMProcedureState { STEP_1, STEP_2 };<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public static class TestSMProcedure<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      extends StateMachineProcedure&lt;TestProcEnv, TestSMProcedureState&gt; {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    protected Flow executeFromState(TestProcEnv env, TestSMProcedureState state) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      LOG.info("EXEC " + state + " " + this);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      env.execCount.incrementAndGet();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      switch (state) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        case STEP_1:<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          setNextState(TestSMProcedureState.STEP_2);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          break;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        case STEP_2:<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          addChildProcedure(new SimpleChildProcedure());<a name="line.148"></a>
+<span class="sourceLineNo">149</span>          return Flow.NO_MORE_STATE;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      return Flow.HAS_MORE_STATE;<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>    protected void rollbackState(TestProcEnv env, TestSMProcedureState state) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      LOG.info("ROLLBACK " + state + " " + this);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      env.rollbackCount.incrementAndGet();<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>    protected TestSMProcedureState getState(int stateId) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return TestSMProcedureState.values()[stateId];<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>    protected int getStateId(TestSMProcedureState state) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return state.ordinal();<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>    protected TestSMProcedureState getInitialState() {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      return TestSMProcedureState.STEP_1;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public static class SimpleChildProcedure extends NoopProcedure&lt;TestProcEnv&gt; {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    protected Procedure[] execute(TestProcEnv env) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      LOG.info("EXEC " + this);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      env.execCount.incrementAndGet();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      if (env.triggerChildRollback) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        setFailure("test-failure", TEST_FAILURE_EXCEPTION);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return null;<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>    protected void rollback(TestProcEnv env) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      LOG.info("ROLLBACK " + this);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      env.rollbackCount.incrementAndGet();<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>  public class TestProcEnv {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    AtomicInteger execCount = new AtomicInteger(0);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    AtomicInteger rollbackCount = new AtomicInteger(0);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    boolean triggerChildRollback = false;<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>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
index a1495ff..0c11099 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
@@ -839,1019 +839,1030 @@
 <span class="sourceLineNo">831</span>  private long pushProcedure(final Procedure proc) {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>    final long currentProcId = proc.getProcId();<a name="line.832"></a>
 <span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the rollback stack for the procedure<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    RootProcedureState stack = new RootProcedureState();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    rollbackStack.put(currentProcId, stack);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // Submit the new subprocedures<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    assert !procedures.containsKey(currentProcId);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    procedures.put(currentProcId, proc);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    sendProcedureAddedNotification(currentProcId);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    scheduler.addBack(proc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return proc.getProcId();<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Send an abort notification the specified procedure.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * @param procId the procedure to abort<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  public boolean abort(final long procId) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    return abort(procId, true);<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>   * Send an abort notification the specified procedure.<a name="line.857"></a>
-<span class="sourceLineNo">858</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>   * @param procId the procedure to abort<a name="line.859"></a>
-<span class="sourceLineNo">860</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    final Procedure proc = procedures.get(procId);<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (proc != null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        return false;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return proc.abort(getEnvironment());<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    return false;<a name="line.871"></a>
-<span class="sourceLineNo">872</span>  }<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>  //  Executor query helpers<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  // ==========================================================================<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public Procedure getProcedure(final long procId) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    return procedures.get(procId);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  }<a name="line.879"></a>
-<span class="sourceLineNo">880</span><a name="line.880"></a>
-<span class="sourceLineNo">881</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    final Procedure proc = getProcedure(procId);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (clazz.isInstance(proc)) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      return (T)proc;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    return null;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  public ProcedureInfo getResult(final long procId) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    return completed.get(procId);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>  }<a name="line.891"></a>
-<span class="sourceLineNo">892</span><a name="line.892"></a>
-<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * Return true if the procedure is finished.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * Use getResult() to check the state or get the result data.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @param procId the ID of the procedure to check<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  public boolean isFinished(final long procId) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    return !procedures.containsKey(procId);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>  }<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * Return true if the procedure is started.<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   * @param procId the ID of the procedure to check<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   */<a name="line.908"></a>
-<span class="sourceLineNo">909</span>  public boolean isStarted(final long procId) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    final Procedure proc = procedures.get(procId);<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (proc == null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      return completed.get(procId) != null;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return proc.wasExecuted();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param procId the ID of the procedure to remove<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   */<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public void removeResult(final long procId) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    final ProcedureInfo result = completed.get(procId);<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    if (result == null) {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      if (LOG.isDebugEnabled()) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      }<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      return;<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>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>  }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    ProcedureInfo result = completed.get(procId);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    Procedure proc = null;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    if (result == null) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      proc = procedures.get(procId);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      if (proc == null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        result = completed.get(procId);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    return new Pair(result, proc);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Check if the user is this procedure's owner<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   * @param procId the target procedure<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param user the user<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   * @return true if the user is the owner of the procedure,<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   *   false otherwise or the owner is unknown.<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   */<a name="line.953"></a>
-<span class="sourceLineNo">954</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    if (user == null) return false;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    final Procedure proc = procedures.get(procId);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    if (proc != null) {<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      return proc.getOwner().equals(user.getShortName());<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>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    if (procInfo == null) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>      // At this time, we cannot check the owner of the procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return false;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  }<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>   * List procedures.<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   * @return the procedures in a list<a name="line.973"></a>
-<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      // it could complete after we walk through procedures list and insert into<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      procedureLists.add(e.getValue());<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    }<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return procedureLists;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  // ==========================================================================<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  //  Listeners helpers<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  // ==========================================================================<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    this.listeners.add(listener);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  }<a name="line.995"></a>
-<span class="sourceLineNo">996</span><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    return this.listeners.remove(listener);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>  }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    if (!this.listeners.isEmpty()) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          listener.procedureLoaded(procId);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>        } catch (Throwable e) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<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>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    if (!this.listeners.isEmpty()) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>          listener.procedureAdded(procId);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        } catch (Throwable e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        }<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>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    if (!this.listeners.isEmpty()) {<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>        try {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          listener.procedureFinished(procId);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>        } catch (Throwable e) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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><a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  // ==========================================================================<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  //  Procedure IDs helpers<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  // ==========================================================================<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  private long nextProcId() {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    long procId = lastProcId.incrementAndGet();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    if (procId &lt; 0) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>        procId = lastProcId.get();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>        if (procId &gt;= 0)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>          break;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      while (procedures.containsKey(procId)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        procId = lastProcId.incrementAndGet();<a name="line.1049"></a>
+<span class="sourceLineNo">834</span>    // Update metrics on start of a procedure<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>    // Create the rollback stack for the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    RootProcedureState stack = new RootProcedureState();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    rollbackStack.put(currentProcId, stack);<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // Submit the new subprocedures<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    assert !procedures.containsKey(currentProcId);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    procedures.put(currentProcId, proc);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    sendProcedureAddedNotification(currentProcId);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    scheduler.addBack(proc);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    return proc.getProcId();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Send an abort notification the specified procedure.<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @param procId the procedure to abort<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public boolean abort(final long procId) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    return abort(procId, true);<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>  /**<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   * Send an abort notification the specified procedure.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.861"></a>
+<span class="sourceLineNo">862</span>   * @param procId the procedure to abort<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    final Procedure proc = procedures.get(procId);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    if (proc != null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return false;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>      return proc.abort(getEnvironment());<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    return false;<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>  //  Executor query helpers<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  // ==========================================================================<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  public Procedure getProcedure(final long procId) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    return procedures.get(procId);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    final Procedure proc = getProcedure(procId);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (clazz.isInstance(proc)) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      return (T)proc;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    return null;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>  }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>  public ProcedureInfo getResult(final long procId) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    return completed.get(procId);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>  }<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>   * Return true if the procedure is finished.<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Use getResult() to check the state or get the result data.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @param procId the ID of the procedure to check<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>   */<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public boolean isFinished(final long procId) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    return !procedures.containsKey(procId);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * Return true if the procedure is started.<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * @param procId the ID of the procedure to check<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  public boolean isStarted(final long procId) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    final Procedure proc = procedures.get(procId);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    if (proc == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      return completed.get(procId) != null;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return proc.wasExecuted();<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param procId the ID of the procedure to remove<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  public void removeResult(final long procId) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>    final ProcedureInfo result = completed.get(procId);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    if (result == null) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      if (LOG.isDebugEnabled()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      return;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<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>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    ProcedureInfo result = completed.get(procId);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    Procedure proc = null;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    if (result == null) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      proc = procedures.get(procId);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      if (proc == null) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        result = completed.get(procId);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    return new Pair(result, proc);<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>   * Check if the user is this procedure's owner<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   * @param procId the target procedure<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param user the user<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return true if the user is the owner of the procedure,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   *   false otherwise or the owner is unknown.<a name="line.955"></a>
+<span class="sourceLineNo">956</span>   */<a name="line.956"></a>
+<span class="sourceLineNo">957</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    if (user == null) return false;<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>    final Procedure proc = procedures.get(procId);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    if (proc != null) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      return proc.getOwner().equals(user.getShortName());<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    if (procInfo == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      // At this time, we cannot check the owner of the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      return false;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<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>  /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>   * List procedures.<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * @return the procedures in a list<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      // it could complete after we walk through procedures list and insert into<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      procedureLists.add(e.getValue());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    return procedureLists;<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>  //  Listeners helpers<a name="line.994"></a>
+<span class="sourceLineNo">995</span>  // ==========================================================================<a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    this.listeners.add(listener);<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>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    return this.listeners.remove(listener);<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>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    if (!this.listeners.isEmpty()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          listener.procedureLoaded(procId);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        } catch (Throwable e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    if (!this.listeners.isEmpty()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          listener.procedureAdded(procId);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        } catch (Throwable e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    if (!this.listeners.isEmpty()) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        try {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          listener.procedureFinished(procId);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        } catch (Throwable e) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  // ==========================================================================<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>  //  Procedure IDs helpers<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  // ==========================================================================<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>  private long nextProcId() {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    long procId = lastProcId.incrementAndGet();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    if (procId &lt; 0) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        procId = lastProcId.get();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        if (procId &gt;= 0)<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>          break;<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return procId;<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>  @VisibleForTesting<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  protected long getLastProcId() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return lastProcId.get();<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>  @VisibleForTesting<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span><a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>  // ==========================================================================<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  //  Executions<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  // ==========================================================================<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  private void executeProcedure(final Procedure proc) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    if (rootProcId == null) {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      executeRollback(proc);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      return;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    if (procStack == null) return;<a name="line.1082"></a>
+<span class="sourceLineNo">1051</span>      while (procedures.containsKey(procId)) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        procId = lastProcId.incrementAndGet();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    return procId;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>  @VisibleForTesting<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>  protected long getLastProcId() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    return lastProcId.get();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>  }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  @VisibleForTesting<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>  }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  // ==========================================================================<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>  //  Executions<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  // ==========================================================================<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>  private void executeProcedure(final Procedure proc) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    if (rootProcId == null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      executeRollback(proc);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>      return;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    }<a name="line.1082"></a>
 <span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    do {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      // Try to acquire the execution<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (!procStack.acquire(proc)) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        if (procStack.setRollback()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>            case LOCK_ACQUIRED:<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>                break;<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>            case LOCK_YIELD_WAIT:<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>              procStack.unsetRollback();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>              scheduler.yield(proc);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>              break;<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>            case LOCK_EVENT_WAIT:<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>              procStack.unsetRollback();<a name="line.1097"></a>
+<span class="sourceLineNo">1084</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    if (procStack == null) return;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    do {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>      // Try to acquire the execution<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>      if (!procStack.acquire(proc)) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        if (procStack.setRollback()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>            case LOCK_ACQUIRED:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>            case LOCK_YIELD_WAIT:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>              procStack.unsetRollback();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>              scheduler.yield(proc);<a name="line.1097"></a>
 <span class="sourceLineNo">1098</span>              break;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>            default:<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>              throw new UnsupportedOperationException();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>          }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        } else {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>          // if we can't rollback means that some child is still running.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>          // the rollback will be executed after all the children are done.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          if (!proc.wasExecuted()) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>            switch (executeRollback(proc)) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>              case LOCK_ACQUIRED:<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>                break;<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>              case LOCK_YIELD_WAIT:<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>                scheduler.yield(proc);<a name="line.1111"></a>
+<span class="sourceLineNo">1099</span>            case LOCK_EVENT_WAIT:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>              procStack.unsetRollback();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>              break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>            default:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>              throw new UnsupportedOperationException();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>          // if we can't rollback means that some child is still running.<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>          // the rollback will be executed after all the children are done.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>          if (!proc.wasExecuted()) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>            switch (executeRollback(proc)) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>              case LOCK_ACQUIRED:<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>                break;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>              case LOCK_EVENT_WAIT:<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>                break;<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>              default:<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>                throw new UnsupportedOperationException();<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>        break;<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>      }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span><a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      // Execute the procedure<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      switch (acquireLock(proc)) {<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>        case LOCK_ACQUIRED:<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>          execProcedure(procStack, proc);<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>          releaseLock(proc, false);<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>          break;<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>        case LOCK_YIELD_WAIT:<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          scheduler.yield(proc);<a name="line.1131"></a>
+<span class="sourceLineNo">1113</span>              case LOCK_YIELD_WAIT:<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                scheduler.yield(proc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>              case LOCK_EVENT_WAIT:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                break;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>              default:<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                throw new UnsupportedOperationException();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>            }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        break;<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>      // Execute the procedure<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      switch (acquireLock(proc)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        case LOCK_ACQUIRED:<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>          execProcedure(procStack, proc);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          releaseLock(proc, false);<a name="line.1131"></a>
 <span class="sourceLineNo">1132</span>          break;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        case LOCK_EVENT_WAIT:<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>          // someone will wake us up when the lock is available<a name="line.1134"></a>
+<span class="sourceLineNo">1133</span>        case LOCK_YIELD_WAIT:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          scheduler.yield(proc);<a name="line.1134"></a>
 <span class="sourceLineNo">1135</span>          break;<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        default:<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>          throw new UnsupportedOperationException();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>      procStack.release(proc);<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      // useful to test the procedure recovery.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (testing != null &amp;&amp; !isRunning()) {<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>      if (proc.isSuccess()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>        if (LOG.isDebugEnabled()) {<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        // Finalize the procedure state<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        if (proc.getProcId() == rootProcId) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>          procedureFinished(proc);<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        } else {<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          execCompletionCleanup(proc);<a name="line.1155"></a>
+<span class="sourceLineNo">1136</span>        case LOCK_EVENT_WAIT:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          // someone will wake us up when the lock is available<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>          break;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        default:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>          throw new UnsupportedOperationException();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      procStack.release(proc);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // useful to test the procedure recovery.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      if (testing != null &amp;&amp; !isRunning()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        break;<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>      if (proc.isSuccess()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        // update metrics on finishing the procedure<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        if (LOG.isDebugEnabled()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1155"></a>
 <span class="sourceLineNo">1156</span>        }<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>        break;<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      }<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    } while (procStack.isFailed());<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    final TEnvironment env = getEnvironment();<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      return LockState.LOCK_ACQUIRED;<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    return proc.doAcquireLock(env);<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    final TEnvironment env = getEnvironment();<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    // for how the framework works, we know that we will always have the lock<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (force || !proc.holdLock(env)) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      proc.doReleaseLock(env);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * Execute the rollback of the full procedure stack.<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * finished to user, and the result will be the fatal exception.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   */<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    if (exception == null) {<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>      exception = procStack.getException();<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      rootProc.setFailure(exception);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      store.update(rootProc);<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span><a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span><a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>    int stackTail = subprocStack.size();<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    boolean reuseLock = false;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    while (stackTail --&gt; 0) {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span><a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      LockState lockState;<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>        // queue waiting for the lock availability<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>        return lockState;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      }<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span><a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      lockState = executeRollback(proc);<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // If the next procedure is the same to this one<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      // we can avoid to lock/unlock each step<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      if (!reuseLock) {<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>        releaseLock(proc, false);<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // useful to test the procedure recovery.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      if (abortRollback) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>        return lockState;<a name="line.1226"></a>
+<span class="sourceLineNo">1157</span>        // Finalize the procedure state<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        if (proc.getProcId() == rootProcId) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>          procedureFinished(proc);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>          execCompletionCleanup(proc);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>      }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>    } while (procStack.isFailed());<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    final TEnvironment env = getEnvironment();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      return LockState.LOCK_ACQUIRED;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    return proc.doAcquireLock(env);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    final TEnvironment env = getEnvironment();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    // for how the framework works, we know that we will always have the lock<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    if (force || !proc.holdLock(env)) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      proc.doReleaseLock(env);<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><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Execute the rollback of the full procedure stack.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * finished to user, and the result will be the fatal exception.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (exception == null) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      exception = procStack.getException();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      rootProc.setFailure(exception);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      store.update(rootProc);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>    int stackTail = subprocStack.size();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    boolean reuseLock = false;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    while (stackTail --&gt; 0) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      LockState lockState;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        // queue waiting for the lock availability<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        return lockState;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      lockState = executeRollback(proc);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      // If the next procedure is the same to this one<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>      // we can avoid to lock/unlock each step<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      if (!reuseLock) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        releaseLock(proc, false);<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>      subprocStack.remove(stackTail);<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      // if the procedure is kind enough to pass the slot to someone else, yield<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      if (proc.isYieldAfterExecutionStep(getEnvironment())) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>        return LockState.LOCK_YIELD_WAIT;<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      }<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span><a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      if (proc != rootProc) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        execCompletionCleanup(proc);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span><a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // Finalize the procedure state<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    LOG.info("Rolled back " + rootProc +<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>             " exec-time=" + StringUtils.humanTimeDiff(rootProc.elapsedTime()));<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    procedureFinished(rootProc);<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    return LockState.LOCK_ACQUIRED;<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span><a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  /**<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * Execute the rollback of the procedure step.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   * It updates the store with the new state (stack index)<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>   * or will remove completly the procedure in case it is a child.<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  private LockState executeRollback(final Procedure proc) {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>    try {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      proc.doRollback(getEnvironment());<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    } catch (IOException e) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      if (LOG.isDebugEnabled()) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        LOG.debug("Roll back attempt failed for " + proc, e);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      }<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    } catch (InterruptedException e) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      handleInterruptedException(proc, e);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    } catch (Throwable e) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      // Catch NullPointerExceptions or similar errors...<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>      LOG.fatal("CODE-BUG: Uncatched runtime exception for procedure: " + proc, e);<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    // allows to kill the executor before something is stored to the wal.<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>    // useful to test the procedure recovery.<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    if (testing != null &amp;&amp; testing.shouldKillBeforeStoreUpdate()) {<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      LOG.debug("TESTING: Kill before store update");<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      stop();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    if (proc.removeStackIndex()) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      proc.setState(ProcedureState.ROLLEDBACK);<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>      if (proc.hasParent()) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>        store.delete(proc.getProcId());<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        procedures.remove(proc.getProcId());<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      } else {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        final long[] childProcIds = rollbackStack.get(proc.getProcId()).getSubprocedureIds();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>        if (childProcIds != null) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>          store.delete(proc, childProcIds);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        } else {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          store.update(proc);<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>    } else {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      store.update(proc);<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return LockState.LOCK_ACQUIRED;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  /**<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   * Executes the specified procedure<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   *  - calls the doExecute() of the procedure<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>   *  - if the procedure execution didn't fail (e.g. invalid user input)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   *     - ...and returned subprocedures<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>   *        - the subprocedures are initialized.<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   *        - the subprocedures are added to the store<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   *        - the subprocedures are added to the runnable queue<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *        - the procedure is now in a WAITING state, waiting for the subprocedures to complete<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   *     - ...if there are no subprocedure<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>   *        - the procedure completed successfully<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>   *        - if there is a parent (WAITING)<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>   *            - the parent state will be set to RUNNABLE<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   *  - in case of failure<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   *    - the store is updated with the new state<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   *    - the executor (caller of this method) will start the rollback of the procedure<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   */<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  private void execProcedure(final RootProcedureState procStack, final Procedure procedure) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>    Preconditions.checkArgument(procedure.getState() == ProcedureState.RUNNABLE);<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Execute the procedure<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    boolean suspended = false;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    boolean reExecute = false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    Procedure[] subprocs = null;<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>    do {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      reExecute = false;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      try {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        subprocs = procedure.doExecute(getEnvironment());<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        if (subprocs != null &amp;&amp; subprocs.length == 0) {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          subprocs = null;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      } catch (ProcedureSuspendedException e) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        suspended = true;<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      } catch (ProcedureYieldException e) {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        if (LOG.isTraceEnabled()) {<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>          LOG.trace("Yield " + procedure + ": " + e.getMessage());<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        scheduler.yield(procedure);<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        return;<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>      } catch (InterruptedException e) {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        handleInterruptedException(procedure, e);<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        scheduler.yield(procedure);<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        return;<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      } catch (Throwable e) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>        // Catch NullPointerExceptions or similar errors...<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        String msg = "CODE-BUG: Uncaught runtime exception: " + procedure;<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        LOG.error(msg, e);<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        procedure.setFailure(new RemoteProcedureException(msg, e));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span><a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>      if (!procedure.isFailed()) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        if (subprocs != null) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>          if (subprocs.length == 1 &amp;&amp; subprocs[0] == procedure) {<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>            // quick-shortcut for a state machine like procedure<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>            subprocs = null;<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            reExecute = true;<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          } else {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span> 

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
index db39e84..08d0b95 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
@@ -367,7 +367,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">g
 etProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/had
 oop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoo
 p/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#
 setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">was
 Executed</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">g
 etProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/ap
 ache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/
 apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hado
 op/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html
index 9e2a5ae..95acd84 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html
@@ -180,7 +180,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../.
 ./org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-java.io.InputStream-">deserializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apache/hadoo
 p/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInit
 ializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-java.io.OutputStream-">serializeStateData</a>, <a href="../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hado
 op.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">s
 etTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>
 , <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../.
 ./org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-java.io.InputStream-">deserializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--
 ">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-java.io.OutputStream-">serializeStateData</a>, <a href="../../../../../org/apache/
 hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apa
 che.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#se
 tTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">t
 oStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
index 629e64d..3294a28 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
@@ -397,7 +397,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
index 87c97d2..7b3db11 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
@@ -384,7 +384,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExec
 uted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
index cf447ae..685d228 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
@@ -412,7 +412,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExec
 uted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.html
index 9833c9e..3239bd8 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.html
@@ -418,7 +418,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">g
 etProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/had
 oop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoo
 p/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#
 setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">was
 Executed</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">g
 etProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/ap
 ache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/
 apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hado
 op/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
index 3151e66..a7df7de 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
@@ -389,7 +389,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index faf1965..5cb7b0c 100644
--- a/index.html
+++ b/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase\u2122 Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -446,7 +446,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index aaf5381..aabe68c 100644
--- a/integration.html
+++ b/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Continuous Integration</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -308,7 +308,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 6378364..bdbbbe4 100644
--- a/issue-tracking.html
+++ b/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Tracking</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -305,7 +305,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index bd837fb..480e16c 100644
--- a/license.html
+++ b/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project License</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -508,7 +508,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index eb45575..db79fc3 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -358,7 +358,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index 900953e..759ec43 100644
--- a/metrics.html
+++ b/metrics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -476,7 +476,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index 277830d..ad7d2a0 100644
--- a/old_news.html
+++ b/old_news.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -431,7 +431,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index 3579e9e..bd3b69f 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -453,7 +453,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index b984398..9f2add9 100644
--- a/plugins.html
+++ b/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Build Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -388,7 +388,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 8e30a79..b318e37 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase�</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -786,7 +786,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 8325bee..55a288d 100644
--- a/project-info.html
+++ b/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -352,7 +352,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 1dee01b..9bac120 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -322,7 +322,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index cd98ed8..f3192c1 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -348,7 +348,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 4d74a2b..f46fe04 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -325,7 +325,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index ed52c3d..f7c3414 100644
--- a/replication.html
+++ b/replication.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -320,7 +320,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 32a7c4f..2926ed4 100644
--- a/resources.html
+++ b/resources.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -348,7 +348,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index b53748e..dde816f 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Repository</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -316,7 +316,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index f46523b..720ef69 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase� Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -350,7 +350,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 7011020..62041cb 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -537,7 +537,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index 50ac675..829555b 100644
--- a/team-list.html
+++ b/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Team list</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -811,7 +811,7 @@ window.onLoad = init();
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index 002e977..81659d6 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -1375,6 +1375,9 @@
 <li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureInMemoryChore.TestProcEnv</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure/TestProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure" target="classFrame">TestProcedureManager</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure/TestProcedureMember.html" title="class in org.apache.hadoop.hbase.procedure" target="classFrame">TestProcedureMember</a></li>
+<li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureMetrics</a></li>
+<li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureMetrics.ProcedureMetrics</a></li>
+<li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureMetrics.TestProcEnv</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureNonce</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureNonce.TestProcEnv</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureNonce.TestSingleStepProcedure</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index 3e5769a..25ed49b 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -1375,6 +1375,9 @@
 <li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore.TestProcEnv</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure/TestProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">TestProcedureManager</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure/TestProcedureMember.html" title="class in org.apache.hadoop.hbase.procedure">TestProcedureMember</a></li>
+<li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></li>
+<li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></li>
+<li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestProcEnv</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestSingleStepProcedure</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/constant-values.html b/testdevapidocs/constant-values.html
index 1f40633..bf5e250 100644
--- a/testdevapidocs/constant-values.html
+++ b/testdevapidocs/constant-values.html
@@ -7236,6 +7236,25 @@
 </li>
 <li class="blockList">
 <table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.PROCEDURE_EXECUTOR_SLOTS">
+<!--   -->
+</a><code>private&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#PROCEDURE_EXECUTOR_SLOTS">PROCEDURE_EXECUTOR_SLOTS</a></code></td>
+<td class="colLast"><code>1</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
 <caption><span>org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.LockState.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.LockState.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.LockState.html
index 94f6ab6..d18d851 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.LockState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.LockState.html
@@ -46,7 +46,7 @@
 <span class="sourceLineNo">038</span><a name="line.38"></a>
 <span class="sourceLineNo">039</span>/**<a name="line.39"></a>
 <span class="sourceLineNo">040</span> * Base Procedure class responsible to handle the Procedure Metadata<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * e.g. state, startTime, lastUpdate, stack-indexes, ...<a name="line.41"></a>
+<span class="sourceLineNo">041</span> * e.g. state, submittedTime, lastUpdate, stack-indexes, ...<a name="line.41"></a>
 <span class="sourceLineNo">042</span> *<a name="line.42"></a>
 <span class="sourceLineNo">043</span> * execute() is called each time the procedure is executed.<a name="line.43"></a>
 <span class="sourceLineNo">044</span> * it may be called multiple times in case of failure and restart, so the<a name="line.44"></a>
@@ -81,7 +81,7 @@
 <span class="sourceLineNo">073</span>  private long parentProcId = NO_PROC_ID;<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  private long rootProcId = NO_PROC_ID;<a name="line.74"></a>
 <span class="sourceLineNo">075</span>  private long procId = NO_PROC_ID;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private long startTime;<a name="line.76"></a>
+<span class="sourceLineNo">076</span>  private long submittedTime;<a name="line.76"></a>
 <span class="sourceLineNo">077</span><a name="line.77"></a>
 <span class="sourceLineNo">078</span>  // runtime state, updated every operation<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  private ProcedureState state = ProcedureState.INITIALIZING;<a name="line.79"></a>
@@ -248,566 +248,587 @@
 <span class="sourceLineNo">240</span>    return true;<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>  @Override<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  public String toString() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    // Return the simple String presentation of the procedure.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    return toStringSimpleSB().toString();<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">243</span>  /**<a name="line.243"></a>
+<span class="sourceLineNo">244</span>   * This function will be called just when procedure is submitted for execution. Override this<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   * method to update the metrics at the beginning of the procedure<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  protected void updateMetricsOnSubmit(final TEnvironment env) {}<a name="line.247"></a>
 <span class="sourceLineNo">248</span><a name="line.248"></a>
 <span class="sourceLineNo">249</span>  /**<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   * Build the StringBuilder for the simple form of<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * procedure string.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * @return the StringBuilder<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   */<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected StringBuilder toStringSimpleSB() {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    final StringBuilder sb = new StringBuilder();<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    sb.append("procId=");<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    sb.append(getProcId());<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    if (hasParent()) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      sb.append(", parentProcId=");<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      sb.append(getParentProcId());<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
-<span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>    if (hasOwner()) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      sb.append(", owner=");<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      sb.append(getOwner());<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    }<a name="line.268"></a>
+<span class="sourceLineNo">250</span>   * This function will be called just after procedure execution is finished. Override this method<a name="line.250"></a>
+<span class="sourceLineNo">251</span>   * to update metrics at the end of the procedure<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   *<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * TODO: As any of the sub-procedures on failure rolls back all procedures in the stack,<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * including successfully finished siblings, this function may get called twice in certain<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * cases for certain procedures. Explore further if this can be called once.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   *<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * @param env<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * @param runtime - Runtime of the procedure in milliseconds<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * @param success - true if procedure is completed successfully<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  protected void updateMetricsOnFinish(final TEnvironment env, final long runtime,<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                       boolean success) {}<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 String toString() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    // Return the simple String presentation of the procedure.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    return toStringSimpleSB().toString();<a name="line.267"></a>
+<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
 <span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>    sb.append(", state=");<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    toStringState(sb);<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    if (hasException()) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      sb.append(", exception=" + getException());<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>    sb.append(", ");<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    toStringClassDetails(sb);<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>    return sb;<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>  /**<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * Extend the toString() information with more procedure<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * details<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  public String toStringDetails() {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    final StringBuilder sb = toStringSimpleSB();<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>    sb.append(" startTime=");<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    sb.append(getStartTime());<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>    sb.append(" lastUpdate=");<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    sb.append(getLastUpdate());<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>    final int[] stackIndices = getStackIndexes();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    if (stackIndices != null) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      sb.append("\n");<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      sb.append("stackIndexes=");<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      sb.append(Arrays.toString(stackIndices));<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>    return sb.toString();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>  protected String toStringClass() {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    StringBuilder sb = new StringBuilder();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    toStringClassDetails(sb);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    return sb.toString();<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>  /**<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   * Called from {@link #toString()} when interpolating {@link Procedure} state<a name="line.313"></a>
-<span class="sourceLineNo">314</span>   * @param builder Append current {@link ProcedureState}<a name="line.314"></a>
-<span class="sourceLineNo">315</span>   */<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  protected void toStringState(StringBuilder builder) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    builder.append(getState());<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>  /**<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   * Extend the toString() information with the procedure details<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   * e.g. className and parameters<a name="line.322"></a>
-<span class="sourceLineNo">323</span>   * @param builder the string builder to use to append the proc specific information<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   */<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  protected void toStringClassDetails(StringBuilder builder) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    builder.append(getClass().getName());<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>  // ==========================================================================<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  //  Those fields are unchanged after initialization.<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  //<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  //  Each procedure will get created from the user or during<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  //  ProcedureExecutor.start() during the load() phase and then submitted<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  //  to the executor. these fields will never be changed after initialization<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  // ==========================================================================<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  public long getProcId() {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    return procId;<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>  public boolean hasParent() {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    return parentProcId != NO_PROC_ID;<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>  public long getParentProcId() {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    return parentProcId;<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>  public long getRootProcId() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return rootProcId;<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 NonceKey getNonceKey() {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    return nonceKey;<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>  public long getStartTime() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    return startTime;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  public String getOwner() {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    return owner;<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>  public boolean hasOwner() {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    return owner != null;<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>  /**<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   * Called by the ProcedureExecutor to assign the ID to the newly created procedure.<a name="line.369"></a>
-<span class="sourceLineNo">370</span>   */<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  @VisibleForTesting<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  @InterfaceAudience.Private<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  protected void setProcId(final long procId) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    this.procId = procId;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    this.startTime = EnvironmentEdgeManager.currentTime();<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    setState(ProcedureState.RUNNABLE);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  /**<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   * Called by the ProcedureExecutor to assign the parent to the newly created procedure.<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   */<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  @InterfaceAudience.Private<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  protected void setParentProcId(final long parentProcId) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    this.parentProcId = parentProcId;<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>  @InterfaceAudience.Private<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  protected void setRootProcId(final long rootProcId) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    this.rootProcId = rootProcId;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  /**<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * Called by the ProcedureExecutor to set the value to the newly created procedure.<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   */<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  @VisibleForTesting<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  @InterfaceAudience.Private<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  protected void setNonceKey(final NonceKey nonceKey) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    this.nonceKey = nonceKey;<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>  @VisibleForTesting<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  @InterfaceAudience.Private<a name="line.402"></a>
-<span class="sourceLineNo">403</span>  public void setOwner(final String owner) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    this.owner = StringUtils.isEmpty(owner) ? null : owner;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  }<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>  public void setOwner(final User owner) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    assert owner != null : "expected owner to be not null";<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    setOwner(owner.getShortName());<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>  /**<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   * Called on store load to initialize the Procedure internals after<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   * the creation/deserialization.<a name="line.414"></a>
+<span class="sourceLineNo">270</span>  /**<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   * Build the StringBuilder for the simple form of<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * procedure string.<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   * @return the StringBuilder<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   */<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  protected StringBuilder toStringSimpleSB() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    final StringBuilder sb = new StringBuilder();<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>    sb.append("procId=");<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    sb.append(getProcId());<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>    if (hasParent()) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      sb.append(", parentProcId=");<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      sb.append(getParentProcId());<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>    if (hasOwner()) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      sb.append(", owner=");<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      sb.append(getOwner());<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>    sb.append(", state=");<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    toStringState(sb);<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>    if (hasException()) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      sb.append(", exception=" + getException());<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>    sb.append(", ");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    toStringClassDetails(sb);<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>    return sb;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>  }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>  /**<a name="line.304"></a>
+<span class="sourceLineNo">305</span>   * Extend the toString() information with more procedure<a name="line.305"></a>
+<span class="sourceLineNo">306</span>   * details<a name="line.306"></a>
+<span class="sourceLineNo">307</span>   */<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public String toStringDetails() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    final StringBuilder sb = toStringSimpleSB();<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>    sb.append(" submittedTime=");<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    sb.append(getSubmittedTime());<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>    sb.append(" lastUpdate=");<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    sb.append(getLastUpdate());<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    final int[] stackIndices = getStackIndexes();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    if (stackIndices != null) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      sb.append("\n");<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      sb.append("stackIndexes=");<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      sb.append(Arrays.toString(stackIndices));<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>    return sb.toString();<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>  protected String toStringClass() {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    StringBuilder sb = new StringBuilder();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    toStringClassDetails(sb);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    return sb.toString();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>  /**<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   * Called from {@link #toString()} when interpolating {@link Procedure} state<a name="line.334"></a>
+<span class="sourceLineNo">335</span>   * @param builder Append current {@link ProcedureState}<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   */<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  protected void toStringState(StringBuilder builder) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    builder.append(getState());<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>   * Extend the toString() information with the procedure details<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   * e.g. className and parameters<a name="line.343"></a>
+<span class="sourceLineNo">344</span>   * @param builder the string builder to use to append the proc specific information<a name="line.344"></a>
+<span class="sourceLineNo">345</span>   */<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  protected void toStringClassDetails(StringBuilder builder) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    builder.append(getClass().getName());<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>  //  Those fields are unchanged after initialization.<a name="line.351"></a>
+<span class="sourceLineNo">352</span>  //<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  //  Each procedure will get created from the user or during<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  //  ProcedureExecutor.start() during the load() phase and then submitted<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  //  to the executor. these fields will never be changed after initialization<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  // ==========================================================================<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  public long getProcId() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    return procId;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public boolean hasParent() {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return parentProcId != NO_PROC_ID;<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>  public long getParentProcId() {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    return parentProcId;<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>  public long getRootProcId() {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    return rootProcId;<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>  public NonceKey getNonceKey() {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    return nonceKey;<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>  public long getSubmittedTime() {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    return submittedTime;<a name="line.378"></a>
+<span class="sourceLineNo">379</span>  }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>  public String getOwner() {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    return owner;<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>  public boolean hasOwner() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    return owner != null;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>  /**<a name="line.389"></a>
+<span class="sourceLineNo">390</span>   * Called by the ProcedureExecutor to assign the ID to the newly created procedure.<a name="line.390"></a>
+<span class="sourceLineNo">391</span>   */<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  @VisibleForTesting<a name="line.392"></a>
+<span class="sourceLineNo">393</span>  @InterfaceAudience.Private<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  protected void setProcId(final long procId) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    this.procId = procId;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    this.submittedTime = EnvironmentEdgeManager.currentTime();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    setState(ProcedureState.RUNNABLE);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>  /**<a name="line.400"></a>
+<span class="sourceLineNo">401</span>   * Called by the ProcedureExecutor to assign the parent to the newly created procedure.<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   */<a name="line.402"></a>
+<span class="sourceLineNo">403</span>  @InterfaceAudience.Private<a name="line.403"></a>
+<span class="sourceLineNo">404</span>  protected void setParentProcId(final long parentProcId) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    this.parentProcId = parentProcId;<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>  @InterfaceAudience.Private<a name="line.408"></a>
+<span class="sourceLineNo">409</span>  protected void setRootProcId(final long rootProcId) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    this.rootProcId = rootProcId;<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>  /**<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   * Called by the ProcedureExecutor to set the value to the newly created procedure.<a name="line.414"></a>
 <span class="sourceLineNo">415</span>   */<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  @InterfaceAudience.Private<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  protected void setStartTime(final long startTime) {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    this.startTime = startTime;<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  // ==========================================================================<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  //  runtime state - timeout related<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  // ==========================================================================<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  /**<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   * @param timeout timeout interval in msec<a name="line.425"></a>
-<span class="sourceLineNo">426</span>   */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  protected void setTimeout(final int timeout) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    this.timeout = timeout;<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>  public boolean hasTimeout() {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    return timeout != NO_TIMEOUT;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>  }<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>  /**<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * @return the timeout in msec<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   */<a name="line.437"></a>
-<span class="sourceLineNo">438</span>  public int getTimeout() {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    return timeout;<a name="line.439"></a>
+<span class="sourceLineNo">416</span>  @VisibleForTesting<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  @InterfaceAudience.Private<a name="line.417"></a>
+<span class="sourceLineNo">418</span>  protected void setNonceKey(final NonceKey nonceKey) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    this.nonceKey = nonceKey;<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>  @VisibleForTesting<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  @InterfaceAudience.Private<a name="line.423"></a>
+<span class="sourceLineNo">424</span>  public void setOwner(final String owner) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    this.owner = StringUtils.isEmpty(owner) ? null : owner;<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>  public void setOwner(final User owner) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    assert owner != null : "expected owner to be not null";<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    setOwner(owner.getShortName());<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
+<span class="sourceLineNo">434</span>   * Called on store load to initialize the Procedure internals after<a name="line.434"></a>
+<span class="sourceLineNo">435</span>   * the creation/deserialization.<a name="line.435"></a>
+<span class="sourceLineNo">436</span>   */<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  @InterfaceAudience.Private<a name="line.437"></a>
+<span class="sourceLineNo">438</span>  protected void setSubmittedTime(final long submittedTime) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    this.submittedTime = submittedTime;<a name="line.439"></a>
 <span class="sourceLineNo">440</span>  }<a name="line.440"></a>
 <span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>  /**<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * Called on store load to initialize the Procedure internals after<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * the creation/deserialization.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  @InterfaceAudience.Private<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  protected void setLastUpdate(final long lastUpdate) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    this.lastUpdate = lastUpdate;<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>   * Called by ProcedureExecutor after each time a procedure step is executed.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   */<a name="line.453"></a>
-<span class="sourceLineNo">454</span>  @InterfaceAudience.Private<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  protected void updateTimestamp() {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    this.lastUpdate = EnvironmentEdgeManager.currentTime();<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>  public long getLastUpdate() {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return lastUpdate;<a name="line.460"></a>
+<span class="sourceLineNo">442</span>  // ==========================================================================<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  //  runtime state - timeout related<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>   * @param timeout timeout interval in msec<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  protected void setTimeout(final int timeout) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    this.timeout = timeout;<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>  public boolean hasTimeout() {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    return timeout != NO_TIMEOUT;<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>   * @return the timeout in msec<a name="line.457"></a>
+<span class="sourceLineNo">458</span>   */<a name="line.458"></a>
+<span class="sourceLineNo">459</span>  public int getTimeout() {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    return timeout;<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>  /**<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * Timeout of the next timeout.<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * Called by the ProcedureExecutor if the procedure has timeout set and<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * the procedure is in the waiting queue.<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * @return the timestamp of the next timeout.<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   */<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  @InterfaceAudience.Private<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  protected long getTimeoutTimestamp() {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    return getLastUpdate() + getTimeout();<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>  // ==========================================================================<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  //  runtime state<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>   * @return the time elapsed between the last update and the start time of the procedure.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   */<a name="line.479"></a>
-<span class="sourceLineNo">480</span>  public long elapsedTime() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    return getLastUpdate() - getStartTime();<a name="line.481"></a>
+<span class="sourceLineNo">464</span>   * Called on store load to initialize the Procedure internals after<a name="line.464"></a>
+<span class="sourceLineNo">465</span>   * the creation/deserialization.<a name="line.465"></a>
+<span class="sourceLineNo">466</span>   */<a name="line.466"></a>
+<span class="sourceLineNo">467</span>  @InterfaceAudience.Private<a name="line.467"></a>
+<span class="sourceLineNo">468</span>  protected void setLastUpdate(final long lastUpdate) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    this.lastUpdate = lastUpdate;<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>  /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   * Called by ProcedureExecutor after each time a procedure step is executed.<a name="line.473"></a>
+<span class="sourceLineNo">474</span>   */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  @InterfaceAudience.Private<a name="line.475"></a>
+<span class="sourceLineNo">476</span>  protected void updateTimestamp() {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    this.lastUpdate = EnvironmentEdgeManager.currentTime();<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 long getLastUpdate() {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    return lastUpdate;<a name="line.481"></a>
 <span class="sourceLineNo">482</span>  }<a name="line.482"></a>
 <span class="sourceLineNo">483</span><a name="line.483"></a>
 <span class="sourceLineNo">484</span>  /**<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * @return the serialized result if any, otherwise null<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   */<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  public byte[] getResult() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    return result;<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>   * The procedure may leave a "result" on completion.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   * @param result the serialized result that will be passed to the client<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   */<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  protected void setResult(final byte[] result) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    this.result = result;<a name="line.496"></a>
-<span class="sourceLineNo">497</span>  }<a name="line.497"></a>
-<span class="sourceLineNo">498</span><a name="line.498"></a>
-<span class="sourceLineNo">499</span>  // ==============================================================================================<a name="line.499"></a>
-<span class="sourceLineNo">500</span>  //  Runtime state, updated every operation by the ProcedureExecutor<a name="line.500"></a>
-<span class="sourceLineNo">501</span>  //<a name="line.501"></a>
-<span class="sourceLineNo">502</span>  //  There is always 1 thread at the time operating on the state of the procedure.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  //  The ProcedureExecutor may check and set states, or some Procecedure may<a name="line.503"></a>
-<span class="sourceLineNo">504</span>  //  update its own state. but no concurrent updates. we use synchronized here<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  //  just because the procedure can get scheduled on different executor threads on each step.<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  // ==============================================================================================<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  /**<a name="line.508"></a>
-<span class="sourceLineNo">509</span>   * Procedure has states which are defined in proto file. At some places in the code, we<a name="line.509"></a>
-<span class="sourceLineNo">510</span>   * need to determine more about those states. Following Methods help determine:<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   *<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * {@link #isFailed()} - A procedure has executed at least once and has failed. The procedure<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   *                       may or may not have rolled back yet. Any procedure in FAILED state<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   *                       will be eventually moved to ROLLEDBACK state.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   *<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * {@link #isSuccess()} - A procedure is completed successfully without any exception.<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   *<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * {@link #isFinished()} - As a procedure in FAILED state will be tried forever for rollback, only<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   *                         condition when scheduler/ executor will drop procedure from further<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   *                         processing is when procedure state is ROLLEDBACK or isSuccess()<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   *                         returns true. This is a terminal state of the procedure.<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   *<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   * {@link #isWaiting()} - Procedure is in one of the two waiting states ({@link<a name="line.523"></a>
-<span class="sourceLineNo">524</span>   *                        ProcedureState#WAITING}, {@link ProcedureState#WAITING_TIMEOUT}).<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>  /**<a name="line.527"></a>
-<span class="sourceLineNo">528</span>   * @return true if the procedure is in a RUNNABLE state.<a name="line.528"></a>
-<span class="sourceLineNo">529</span>   */<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  protected synchronized boolean isRunnable() {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    return state == ProcedureState.RUNNABLE;<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>  public synchronized boolean isInitializing() {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    return state == ProcedureState.INITIALIZING;<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>  /**<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   * @return true if the procedure has failed. It may or may not have rolled back.<a name="line.539"></a>
-<span class="sourceLineNo">540</span>   */<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  public synchronized boolean isFailed() {<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    return state == ProcedureState.FAILED || state == ProcedureState.ROLLEDBACK;<a name="line.542"></a>
-<span class="sourceLineNo">543</span>  }<a name="line.543"></a>
-<span class="sourceLineNo">544</span><a name="line.544"></a>
-<span class="sourceLineNo">545</span>  /**<a name="line.545"></a>
-<span class="sourceLineNo">546</span>   * @return true if the procedure is finished successfully.<a name="line.546"></a>
-<span class="sourceLineNo">547</span>   */<a name="line.547"></a>
-<span class="sourceLineNo">548</span>  public synchronized boolean isSuccess() {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    return state == ProcedureState.SUCCESS &amp;&amp; !hasException();<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>  /**<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * @return true if the procedure is finished. The Procedure may be completed successfully or<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   * rolledback.<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   */<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  public synchronized boolean isFinished() {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    return isSuccess() || state == ProcedureState.ROLLEDBACK;<a name="line.557"></a>
-<span class="sourceLineNo">558</span>  }<a name="line.558"></a>
-<span class="sourceLineNo">559</span><a name="line.559"></a>
-<span class="sourceLineNo">560</span>  /**<a name="line.560"></a>
-<span class="sourceLineNo">561</span>   * @return true if the procedure is waiting for a child to finish or for an external event.<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   */<a name="line.562"></a>
-<span class="sourceLineNo">563</span>  public synchronized boolean isWaiting() {<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    switch (state) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      case WAITING:<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      case WAITING_TIMEOUT:<a name="line.566"></a>
-<span class="sourceLineNo">567</span>        return true;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      default:<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        break;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    return false;<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>  @VisibleForTesting<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  @InterfaceAudience.Private<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  protected synchronized void setState(final ProcedureState state) {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    this.state = state;<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    updateTimestamp();<a name="line.578"></a>
+<span class="sourceLineNo">485</span>   * Timeout of the next timeout.<a name="line.485"></a>
+<span class="sourceLineNo">486</span>   * Called by the ProcedureExecutor if the procedure has timeout set and<a name="line.486"></a>
+<span class="sourceLineNo">487</span>   * the procedure is in the waiting queue.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   * @return the timestamp of the next timeout.<a name="line.488"></a>
+<span class="sourceLineNo">489</span>   */<a name="line.489"></a>
+<span class="sourceLineNo">490</span>  @InterfaceAudience.Private<a name="line.490"></a>
+<span class="sourceLineNo">491</span>  protected long getTimeoutTimestamp() {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    return getLastUpdate() + getTimeout();<a name="line.492"></a>
+<span class="sourceLineNo">493</span>  }<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>  // ==========================================================================<a name="line.495"></a>
+<span class="sourceLineNo">496</span>  //  runtime state<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>   * @return the time elapsed between the last update and the start time of the procedure.<a name="line.499"></a>
+<span class="sourceLineNo">500</span>   */<a name="line.500"></a>
+<span class="sourceLineNo">501</span>  public long elapsedTime() {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    return getLastUpdate() - getSubmittedTime();<a name="line.502"></a>
+<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>  /**<a name="line.505"></a>
+<span class="sourceLineNo">506</span>   * @return the serialized result if any, otherwise null<a name="line.506"></a>
+<span class="sourceLineNo">507</span>   */<a name="line.507"></a>
+<span class="sourceLineNo">508</span>  public byte[] getResult() {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    return result;<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>   * The procedure may leave a "result" on completion.<a name="line.513"></a>
+<span class="sourceLineNo">514</span>   * @param result the serialized result that will be passed to the client<a name="line.514"></a>
+<span class="sourceLineNo">515</span>   */<a name="line.515"></a>
+<span class="sourceLineNo">516</span>  protected void setResult(final byte[] result) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>    this.result = result;<a name="line.517"></a>
+<span class="sourceLineNo">518</span>  }<a name="line.518"></a>
+<span class="sourceLineNo">519</span><a name="line.519"></a>
+<span class="sourceLineNo">520</span>  // ==============================================================================================<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  //  Runtime state, updated every operation by the ProcedureExecutor<a name="line.521"></a>
+<span class="sourceLineNo">522</span>  //<a name="line.522"></a>
+<span class="sourceLineNo">523</span>  //  There is always 1 thread at the time operating on the state of the procedure.<a name="line.523"></a>
+<span class="sourceLineNo">524</span>  //  The ProcedureExecutor may check and set states, or some Procecedure may<a name="line.524"></a>
+<span class="sourceLineNo">525</span>  //  update its own state. but no concurrent updates. we use synchronized here<a name="line.525"></a>
+<span class="sourceLineNo">526</span>  //  just because the procedure can get scheduled on different executor threads on each step.<a name="line.526"></a>
+<span class="sourceLineNo">527</span>  // ==============================================================================================<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>  /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>   * Procedure has states which are defined in proto file. At some places in the code, we<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   * need to determine more about those states. Following Methods help determine:<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   *<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   * {@link #isFailed()} - A procedure has executed at least once and has failed. The procedure<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   *                       may or may not have rolled back yet. Any procedure in FAILED state<a name="line.534"></a>
+<span class="sourceLineNo">535</span>   *                       will be eventually moved to ROLLEDBACK state.<a name="line.535"></a>
+<span class="sourceLineNo">536</span>   *<a name="line.536"></a>
+<span class="sourceLineNo">537</span>   * {@link #isSuccess()} - A procedure is completed successfully without any exception.<a name="line.537"></a>
+<span class="sourceLineNo">538</span>   *<a name="line.538"></a>
+<span class="sourceLineNo">539</span>   * {@link #isFinished()} - As a procedure in FAILED state will be tried forever for rollback, only<a name="line.539"></a>
+<span class="sourceLineNo">540</span>   *                         condition when scheduler/ executor will drop procedure from further<a name="line.540"></a>
+<span class="sourceLineNo">541</span>   *                         processing is when procedure state is ROLLEDBACK or isSuccess()<a name="line.541"></a>
+<span class="sourceLineNo">542</span>   *                         returns true. This is a terminal state of the procedure.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   *<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * {@link #isWaiting()} - Procedure is in one of the two waiting states ({@link<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   *                        ProcedureState#WAITING}, {@link ProcedureState#WAITING_TIMEOUT}).<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>  /**<a name="line.548"></a>
+<span class="sourceLineNo">549</span>   * @return true if the procedure is in a RUNNABLE state.<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   */<a name="line.550"></a>
+<span class="sourceLineNo">551</span>  protected synchronized boolean isRunnable() {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    return state == ProcedureState.RUNNABLE;<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>  public synchronized boolean isInitializing() {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    return state == ProcedureState.INITIALIZING;<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>  /**<a name="line.559"></a>
+<span class="sourceLineNo">560</span>   * @return true if the procedure has failed. It may or may not have rolled back.<a name="line.560"></a>
+<span class="sourceLineNo">561</span>   */<a name="line.561"></a>
+<span class="sourceLineNo">562</span>  public synchronized boolean isFailed() {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    return state == ProcedureState.FAILED || state == ProcedureState.ROLLEDBACK;<a name="line.563"></a>
+<span class="sourceLineNo">564</span>  }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>  /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   * @return true if the procedure is finished successfully.<a name="line.567"></a>
+<span class="sourceLineNo">568</span>   */<a name="line.568"></a>
+<span class="sourceLineNo">569</span>  public synchronized boolean isSuccess() {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>    return state == ProcedureState.SUCCESS &amp;&amp; !hasException();<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>   * @return true if the procedure is finished. The Procedure may be completed successfully or<a name="line.574"></a>
+<span class="sourceLineNo">575</span>   * rolledback.<a name="line.575"></a>
+<span class="sourceLineNo">576</span>   */<a name="line.576"></a>
+<span class="sourceLineNo">577</span>  public synchronized boolean isFinished() {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    return isSuccess() || state == ProcedureState.ROLLEDBACK;<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>  @InterfaceAudience.Private<a name="line.581"></a>
-<span class="sourceLineNo">582</span>  protected synchronized ProcedureState getState() {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return state;<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>  protected void setFailure(final String source, final Throwable cause) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    setFailure(new RemoteProcedureException(source, cause));<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>  protected synchronized void setFailure(final RemoteProcedureException exception) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    this.exception = exception;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    if (!isFinished()) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      setState(ProcedureState.FAILED);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  protected void setAbortFailure(final String source, final String msg) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    setFailure(source, new ProcedureAbortedException(msg));<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>  /**<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * Called by the ProcedureExecutor when the timeout set by setTimeout() is expired.<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * @return true to let the framework handle the timeout as abort,<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   *         false in case the procedure handled the timeout itself.<a name="line.604"></a>
-<span class="sourceLineNo">605</span>   */<a name="line.605"></a>
-<span class="sourceLineNo">606</span>  protected synchronized boolean setTimeoutFailure(final TEnvironment env) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    if (state == ProcedureState.WAITING_TIMEOUT) {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      long timeDiff = EnvironmentEdgeManager.currentTime() - lastUpdate;<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      setFailure("ProcedureExecutor", new TimeoutIOException(<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        "Operation timed out after " + StringUtils.humanTimeDiff(timeDiff)));<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      return true;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    }<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    return false;<a name="line.613"></a>
-<span class="sourceLineNo">614</span>  }<a name="line.614"></a>
-<span class="sourceLineNo">615</span><a name="line.615"></a>
-<span class="sourceLineNo">616</span>  public synchronized boolean hasException() {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    return exception != null;<a name="line.617"></a>
-<span class="sourceLineNo">618</span>  }<a name="line.618"></a>
-<span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>  public synchronized RemoteProcedureException getException() {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    return exception;<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>  /**<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   * Called by the ProcedureExecutor on procedure-load to restore the latch state<a name="line.625"></a>
+<span class="sourceLineNo">581</span>  /**<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   * @return true if the procedure is waiting for a child to finish or for an external event.<a name="line.582"></a>
+<span class="sourceLineNo">583</span>   */<a name="line.583"></a>
+<span class="sourceLineNo">584</span>  public synchronized boolean isWaiting() {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    switch (state) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      case WAITING:<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      case WAITING_TIMEOUT:<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        return true;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      default:<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        break;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    return false;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>  }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>  @VisibleForTesting<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  @InterfaceAudience.Private<a name="line.596"></a>
+<span class="sourceLineNo">597</span>  protected synchronized void setState(final ProcedureState state) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    this.state = state;<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    updateTimestamp();<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>  @InterfaceAudience.Private<a name="line.602"></a>
+<span class="sourceLineNo">603</span>  protected synchronized ProcedureState getState() {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    return state;<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>  protected void setFailure(final String source, final Throwable cause) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    setFailure(new RemoteProcedureException(source, cause));<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  }<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>  protected synchronized void setFailure(final RemoteProcedureException exception) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    this.exception = exception;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    if (!isFinished()) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      setState(ProcedureState.FAILED);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>  }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>  protected void setAbortFailure(final String source, final String msg) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    setFailure(source, new ProcedureAbortedException(msg));<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>  /**<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * Called by the ProcedureExecutor when the timeout set by setTimeout() is expired.<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @return true to let the framework handle the timeout as abort,<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   *         false in case the procedure handled the timeout itself.<a name="line.625"></a>
 <span class="sourceLineNo">626</span>   */<a name="line.626"></a>
-<span class="sourceLineNo">627</span>  @InterfaceAudience.Private<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  protected synchronized void setChildrenLatch(final int numChildren) {<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    this.childrenLatch = numChildren;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>  }<a name="line.630"></a>
-<span class="sourceLineNo">631</span><a name="line.631"></a>
-<span class="sourceLineNo">632</span>  /**<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   * Called by the ProcedureExecutor on procedure-load to restore the latch state<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   */<a name="line.634"></a>
-<span class="sourceLineNo">635</span>  @InterfaceAudience.Private<a name="line.635"></a>
-<span class="sourceLineNo">636</span>  protected synchronized void incChildrenLatch() {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    // TODO: can this be inferred from the stack? I think so...<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    this.childrenLatch++;<a name="line.638"></a>
+<span class="sourceLineNo">627</span>  protected synchronized boolean setTimeoutFailure(final TEnvironment env) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    if (state == ProcedureState.WAITING_TIMEOUT) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      long timeDiff = EnvironmentEdgeManager.currentTime() - lastUpdate;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      setFailure("ProcedureExecutor", new TimeoutIOException(<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        "Operation timed out after " + StringUtils.humanTimeDiff(timeDiff)));<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      return true;<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    }<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    return false;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>  }<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>  public synchronized boolean hasException() {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>    return exception != null;<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>  /**<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * Called by the ProcedureExecutor to notify that one of the sub-procedures has completed.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   */<a name="line.643"></a>
-<span class="sourceLineNo">644</span>  @InterfaceAudience.Private<a name="line.644"></a>
-<span class="sourceLineNo">645</span>  protected synchronized boolean childrenCountDown() {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    assert childrenLatch &gt; 0: this;<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    return --childrenLatch == 0;<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>  @InterfaceAudience.Private<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  protected synchronized boolean hasChildren() {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    return childrenLatch &gt; 0;<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>  @InterfaceAudience.Private<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  protected synchronized int getChildrenLatch() {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    return childrenLatch;<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>   * Called by the RootProcedureState on procedure execution.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   * Each procedure store its stack-index positions.<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   */<a name="line.663"></a>
-<span class="sourceLineNo">664</span>  @InterfaceAudience.Private<a name="line.664"></a>
-<span class="sourceLineNo">665</span>  protected synchronized void addStackIndex(final int index) {<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    if (stackIndexes == null) {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      stackIndexes = new int[] { index };<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    } else {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      int count = stackIndexes.length;<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      stackIndexes = Arrays.copyOf(stackIndexes, count + 1);<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      stackIndexes[count] = index;<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>  @InterfaceAudience.Private<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  protected synchronized boolean removeStackIndex() {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    if (stackIndexes != null &amp;&amp; stackIndexes.length &gt; 1) {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>      stackIndexes = Arrays.copyOf(stackIndexes, stackIndexes.length - 1);<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      return false;<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    } else {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>      stackIndexes = null;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>      return true;<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><a name="line.685"></a>
-<span class="sourceLineNo">686</span>  /**<a name="line.686"></a>
-<span class="sourceLineNo">687</span>   * Called on store load to initialize the Procedure internals after<a name="line.687"></a>
-<span class="sourceLineNo">688</span>   * the creation/deserialization.<a name="line.688"></a>
-<span class="sourceLineNo">689</span>   */<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  @InterfaceAudience.Private<a name="line.690"></a>
-<span class="sourceLineNo">691</span>  protected synchronized void setStackIndexes(final List&lt;Integer&gt; stackIndexes) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    this.stackIndexes = new int[stackIndexes.size()];<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    for (int i = 0; i &lt; this.stackIndexes.length; ++i) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      this.stackIndexes[i] = stackIndexes.get(i);<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>  @InterfaceAudience.Private<a name="line.698"></a>
-<span class="sourceLineNo">699</span>  protected synchronized boolean wasExecuted() {<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    return stackIndexes != null;<a name="line.700"></a>
-<span class="sourceLineNo">701</span>  }<a name="line.701"></a>
-<span class="sourceLineNo">702</span><a name="line.702"></a>
-<span class="sourceLineNo">703</span>  @InterfaceAudience.Private<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  protected synchronized int[] getStackIndexes() {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    return stackIndexes;<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>  // ==========================================================================<a name="line.708"></a>
-<span class="sourceLineNo">709</span>  //  Internal methods - called by the ProcedureExecutor<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>   * Internal method called by the ProcedureExecutor that starts the user-level code execute().<a name="line.713"></a>
-<span class="sourceLineNo">714</span>   */<a name="line.714"></a>
-<span class="sourceLineNo">715</span>  @InterfaceAudience.Private<a name="line.715"></a>
-<span class="sourceLineNo">716</span>  protected Procedure[] doExecute(final TEnvironment env)<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      throws ProcedureYieldException, ProcedureSuspendedException, InterruptedException {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    try {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      updateTimestamp();<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      return execute(env);<a name="line.720"></a>
-<span class="sourceLineNo">721</span>    } finally {<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      updateTimestamp();<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>  /**<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * Internal method called by the ProcedureExecutor that starts the user-level code rollback().<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   */<a name="line.728"></a>
-<span class="sourceLineNo">729</span>  @InterfaceAudience.Private<a name="line.729"></a>
-<span class="sourceLineNo">730</span>  protected void doRollback(final TEnvironment env)<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      throws IOException, InterruptedException {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    try {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      updateTimestamp();<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      rollback(env);<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    } finally {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      updateTimestamp();<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    }<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>   * Internal method called by the ProcedureExecutor that starts the user-level code acquireLock().<a name="line.741"></a>
-<span class="sourceLineNo">742</span>   */<a name="line.742"></a>
-<span class="sourceLineNo">743</span>  @InterfaceAudience.Private<a name="line.743"></a>
-<span class="sourceLineNo">744</span>  protected LockState doAcquireLock(final TEnvironment env) {<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    return acquireLock(env);<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>  /**<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   * Internal method called by the ProcedureExecutor that starts the user-level code releaseLock().<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  @InterfaceAudience.Private<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  protected void doReleaseLock(final TEnvironment env) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    releaseLock(env);<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>  @Override<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  public int compareTo(final Procedure other) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    return Long.compare(getProcId(), other.getProcId());<a name="line.758"></a>
+<span class="sourceLineNo">641</span>  public synchronized RemoteProcedureException getException() {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    return exception;<a name="line.642"></a>
+<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>  /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   * Called by the ProcedureExecutor on procedure-load to restore the latch state<a name="line.646"></a>
+<span class="sourceLineNo">647</span>   */<a name="line.647"></a>
+<span class="sourceLineNo">648</span>  @InterfaceAudience.Private<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  protected synchronized void setChildrenLatch(final int numChildren) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    this.childrenLatch = numChildren;<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>   * Called by the ProcedureExecutor on procedure-load to restore the latch state<a name="line.654"></a>
+<span class="sourceLineNo">655</span>   */<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  @InterfaceAudience.Private<a name="line.656"></a>
+<span class="sourceLineNo">657</span>  protected synchronized void incChildrenLatch() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>    // TODO: can this be inferred from the stack? I think so...<a name="line.658"></a>
+<span class="sourceLineNo">659</span>    this.childrenLatch++;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>  }<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span>  /**<a name="line.662"></a>
+<span class="sourceLineNo">663</span>   * Called by the ProcedureExecutor to notify that one of the sub-procedures has completed.<a name="line.663"></a>
+<span class="sourceLineNo">664</span>   */<a name="line.664"></a>
+<span class="sourceLineNo">665</span>  @InterfaceAudience.Private<a name="line.665"></a>
+<span class="sourceLineNo">666</span>  protected synchronized boolean childrenCountDown() {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    assert childrenLatch &gt; 0: this;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    return --childrenLatch == 0;<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>  @InterfaceAudience.Private<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  protected synchronized boolean hasChildren() {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    return childrenLatch &gt; 0;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>  }<a name="line.674"></a>
+<span class="sourceLineNo">675</span><a name="line.675"></a>
+<span class="sourceLineNo">676</span>  @InterfaceAudience.Private<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  protected synchronized int getChildrenLatch() {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    return childrenLatch;<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>  /**<a name="line.681"></a>
+<span class="sourceLineNo">682</span>   * Called by the RootProcedureState on procedure execution.<a name="line.682"></a>
+<span class="sourceLineNo">683</span>   * Each procedure store its stack-index positions.<a name="line.683"></a>
+<span class="sourceLineNo">684</span>   */<a name="line.684"></a>
+<span class="sourceLineNo">685</span>  @InterfaceAudience.Private<a name="line.685"></a>
+<span class="sourceLineNo">686</span>  protected synchronized void addStackIndex(final int index) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    if (stackIndexes == null) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      stackIndexes = new int[] { index };<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    } else {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>      int count = stackIndexes.length;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      stackIndexes = Arrays.copyOf(stackIndexes, count + 1);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>      stackIndexes[count] = index;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    }<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>  @InterfaceAudience.Private<a name="line.696"></a>
+<span class="sourceLineNo">697</span>  protected synchronized boolean removeStackIndex() {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>    if (stackIndexes != null &amp;&amp; stackIndexes.length &gt; 1) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      stackIndexes = Arrays.copyOf(stackIndexes, stackIndexes.length - 1);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>      return false;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>    } else {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>      stackIndexes = null;<a na

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 a1495ff..0c11099 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
@@ -839,1019 +839,1030 @@
 <span class="sourceLineNo">831</span>  private long pushProcedure(final Procedure proc) {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>    final long currentProcId = proc.getProcId();<a name="line.832"></a>
 <span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the rollback stack for the procedure<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    RootProcedureState stack = new RootProcedureState();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    rollbackStack.put(currentProcId, stack);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // Submit the new subprocedures<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    assert !procedures.containsKey(currentProcId);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    procedures.put(currentProcId, proc);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    sendProcedureAddedNotification(currentProcId);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    scheduler.addBack(proc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return proc.getProcId();<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Send an abort notification the specified procedure.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * @param procId the procedure to abort<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  public boolean abort(final long procId) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    return abort(procId, true);<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>   * Send an abort notification the specified procedure.<a name="line.857"></a>
-<span class="sourceLineNo">858</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>   * @param procId the procedure to abort<a name="line.859"></a>
-<span class="sourceLineNo">860</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    final Procedure proc = procedures.get(procId);<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (proc != null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        return false;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return proc.abort(getEnvironment());<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    return false;<a name="line.871"></a>
-<span class="sourceLineNo">872</span>  }<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>  //  Executor query helpers<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  // ==========================================================================<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public Procedure getProcedure(final long procId) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    return procedures.get(procId);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  }<a name="line.879"></a>
-<span class="sourceLineNo">880</span><a name="line.880"></a>
-<span class="sourceLineNo">881</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    final Procedure proc = getProcedure(procId);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (clazz.isInstance(proc)) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      return (T)proc;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    return null;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  public ProcedureInfo getResult(final long procId) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    return completed.get(procId);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>  }<a name="line.891"></a>
-<span class="sourceLineNo">892</span><a name="line.892"></a>
-<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * Return true if the procedure is finished.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * Use getResult() to check the state or get the result data.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @param procId the ID of the procedure to check<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  public boolean isFinished(final long procId) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    return !procedures.containsKey(procId);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>  }<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * Return true if the procedure is started.<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   * @param procId the ID of the procedure to check<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   */<a name="line.908"></a>
-<span class="sourceLineNo">909</span>  public boolean isStarted(final long procId) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    final Procedure proc = procedures.get(procId);<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (proc == null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      return completed.get(procId) != null;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return proc.wasExecuted();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param procId the ID of the procedure to remove<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   */<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public void removeResult(final long procId) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    final ProcedureInfo result = completed.get(procId);<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    if (result == null) {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      if (LOG.isDebugEnabled()) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      }<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      return;<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>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>  }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    ProcedureInfo result = completed.get(procId);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    Procedure proc = null;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    if (result == null) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      proc = procedures.get(procId);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      if (proc == null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        result = completed.get(procId);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    return new Pair(result, proc);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Check if the user is this procedure's owner<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   * @param procId the target procedure<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param user the user<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   * @return true if the user is the owner of the procedure,<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   *   false otherwise or the owner is unknown.<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   */<a name="line.953"></a>
-<span class="sourceLineNo">954</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    if (user == null) return false;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    final Procedure proc = procedures.get(procId);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    if (proc != null) {<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      return proc.getOwner().equals(user.getShortName());<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>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    if (procInfo == null) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>      // At this time, we cannot check the owner of the procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return false;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  }<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>   * List procedures.<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   * @return the procedures in a list<a name="line.973"></a>
-<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      // it could complete after we walk through procedures list and insert into<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      procedureLists.add(e.getValue());<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    }<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return procedureLists;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  // ==========================================================================<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  //  Listeners helpers<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  // ==========================================================================<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    this.listeners.add(listener);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  }<a name="line.995"></a>
-<span class="sourceLineNo">996</span><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    return this.listeners.remove(listener);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>  }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    if (!this.listeners.isEmpty()) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          listener.procedureLoaded(procId);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>        } catch (Throwable e) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<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>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    if (!this.listeners.isEmpty()) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>          listener.procedureAdded(procId);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        } catch (Throwable e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        }<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>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    if (!this.listeners.isEmpty()) {<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>        try {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          listener.procedureFinished(procId);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>        } catch (Throwable e) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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><a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  // ==========================================================================<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  //  Procedure IDs helpers<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  // ==========================================================================<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  private long nextProcId() {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    long procId = lastProcId.incrementAndGet();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    if (procId &lt; 0) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>        procId = lastProcId.get();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>        if (procId &gt;= 0)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>          break;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      while (procedures.containsKey(procId)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        procId = lastProcId.incrementAndGet();<a name="line.1049"></a>
+<span class="sourceLineNo">834</span>    // Update metrics on start of a procedure<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>    // Create the rollback stack for the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    RootProcedureState stack = new RootProcedureState();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    rollbackStack.put(currentProcId, stack);<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // Submit the new subprocedures<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    assert !procedures.containsKey(currentProcId);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    procedures.put(currentProcId, proc);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    sendProcedureAddedNotification(currentProcId);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    scheduler.addBack(proc);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    return proc.getProcId();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Send an abort notification the specified procedure.<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @param procId the procedure to abort<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public boolean abort(final long procId) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    return abort(procId, true);<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>  /**<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   * Send an abort notification the specified procedure.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.861"></a>
+<span class="sourceLineNo">862</span>   * @param procId the procedure to abort<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    final Procedure proc = procedures.get(procId);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    if (proc != null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return false;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>      return proc.abort(getEnvironment());<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    return false;<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>  //  Executor query helpers<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  // ==========================================================================<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  public Procedure getProcedure(final long procId) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    return procedures.get(procId);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    final Procedure proc = getProcedure(procId);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (clazz.isInstance(proc)) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      return (T)proc;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    return null;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>  }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>  public ProcedureInfo getResult(final long procId) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    return completed.get(procId);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>  }<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>   * Return true if the procedure is finished.<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Use getResult() to check the state or get the result data.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @param procId the ID of the procedure to check<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>   */<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public boolean isFinished(final long procId) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    return !procedures.containsKey(procId);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * Return true if the procedure is started.<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * @param procId the ID of the procedure to check<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  public boolean isStarted(final long procId) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    final Procedure proc = procedures.get(procId);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    if (proc == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      return completed.get(procId) != null;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return proc.wasExecuted();<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param procId the ID of the procedure to remove<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  public void removeResult(final long procId) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>    final ProcedureInfo result = completed.get(procId);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    if (result == null) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      if (LOG.isDebugEnabled()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      return;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<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>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    ProcedureInfo result = completed.get(procId);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    Procedure proc = null;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    if (result == null) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      proc = procedures.get(procId);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      if (proc == null) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        result = completed.get(procId);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    return new Pair(result, proc);<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>   * Check if the user is this procedure's owner<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   * @param procId the target procedure<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param user the user<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return true if the user is the owner of the procedure,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   *   false otherwise or the owner is unknown.<a name="line.955"></a>
+<span class="sourceLineNo">956</span>   */<a name="line.956"></a>
+<span class="sourceLineNo">957</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    if (user == null) return false;<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>    final Procedure proc = procedures.get(procId);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    if (proc != null) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      return proc.getOwner().equals(user.getShortName());<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    if (procInfo == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      // At this time, we cannot check the owner of the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      return false;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<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>  /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>   * List procedures.<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * @return the procedures in a list<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      // it could complete after we walk through procedures list and insert into<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      procedureLists.add(e.getValue());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    return procedureLists;<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>  //  Listeners helpers<a name="line.994"></a>
+<span class="sourceLineNo">995</span>  // ==========================================================================<a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    this.listeners.add(listener);<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>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    return this.listeners.remove(listener);<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>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    if (!this.listeners.isEmpty()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          listener.procedureLoaded(procId);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        } catch (Throwable e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    if (!this.listeners.isEmpty()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          listener.procedureAdded(procId);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        } catch (Throwable e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    if (!this.listeners.isEmpty()) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        try {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          listener.procedureFinished(procId);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        } catch (Throwable e) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  // ==========================================================================<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>  //  Procedure IDs helpers<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  // ==========================================================================<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>  private long nextProcId() {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    long procId = lastProcId.incrementAndGet();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    if (procId &lt; 0) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        procId = lastProcId.get();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        if (procId &gt;= 0)<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>          break;<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return procId;<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>  @VisibleForTesting<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  protected long getLastProcId() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return lastProcId.get();<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>  @VisibleForTesting<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span><a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>  // ==========================================================================<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  //  Executions<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  // ==========================================================================<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  private void executeProcedure(final Procedure proc) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    if (rootProcId == null) {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      executeRollback(proc);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      return;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    if (procStack == null) return;<a name="line.1082"></a>
+<span class="sourceLineNo">1051</span>      while (procedures.containsKey(procId)) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        procId = lastProcId.incrementAndGet();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    return procId;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>  @VisibleForTesting<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>  protected long getLastProcId() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    return lastProcId.get();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>  }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  @VisibleForTesting<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>  }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  // ==========================================================================<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>  //  Executions<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  // ==========================================================================<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>  private void executeProcedure(final Procedure proc) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    if (rootProcId == null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      executeRollback(proc);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>      return;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    }<a name="line.1082"></a>
 <span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    do {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      // Try to acquire the execution<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (!procStack.acquire(proc)) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        if (procStack.setRollback()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>            case LOCK_ACQUIRED:<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>                break;<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>            case LOCK_YIELD_WAIT:<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>              procStack.unsetRollback();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>              scheduler.yield(proc);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>              break;<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>            case LOCK_EVENT_WAIT:<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>              procStack.unsetRollback();<a name="line.1097"></a>
+<span class="sourceLineNo">1084</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    if (procStack == null) return;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    do {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>      // Try to acquire the execution<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>      if (!procStack.acquire(proc)) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        if (procStack.setRollback()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>            case LOCK_ACQUIRED:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>            case LOCK_YIELD_WAIT:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>              procStack.unsetRollback();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>              scheduler.yield(proc);<a name="line.1097"></a>
 <span class="sourceLineNo">1098</span>              break;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>            default:<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>              throw new UnsupportedOperationException();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>          }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        } else {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>          // if we can't rollback means that some child is still running.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>          // the rollback will be executed after all the children are done.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          if (!proc.wasExecuted()) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>            switch (executeRollback(proc)) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>              case LOCK_ACQUIRED:<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>                break;<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>              case LOCK_YIELD_WAIT:<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>                scheduler.yield(proc);<a name="line.1111"></a>
+<span class="sourceLineNo">1099</span>            case LOCK_EVENT_WAIT:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>              procStack.unsetRollback();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>              break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>            default:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>              throw new UnsupportedOperationException();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>          // if we can't rollback means that some child is still running.<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>          // the rollback will be executed after all the children are done.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>          if (!proc.wasExecuted()) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>            switch (executeRollback(proc)) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>              case LOCK_ACQUIRED:<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>                break;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>              case LOCK_EVENT_WAIT:<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>                break;<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>              default:<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>                throw new UnsupportedOperationException();<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>        break;<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>      }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span><a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      // Execute the procedure<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      switch (acquireLock(proc)) {<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>        case LOCK_ACQUIRED:<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>          execProcedure(procStack, proc);<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>          releaseLock(proc, false);<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>          break;<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>        case LOCK_YIELD_WAIT:<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          scheduler.yield(proc);<a name="line.1131"></a>
+<span class="sourceLineNo">1113</span>              case LOCK_YIELD_WAIT:<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                scheduler.yield(proc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>              case LOCK_EVENT_WAIT:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                break;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>              default:<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                throw new UnsupportedOperationException();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>            }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        break;<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>      // Execute the procedure<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      switch (acquireLock(proc)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        case LOCK_ACQUIRED:<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>          execProcedure(procStack, proc);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          releaseLock(proc, false);<a name="line.1131"></a>
 <span class="sourceLineNo">1132</span>          break;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        case LOCK_EVENT_WAIT:<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>          // someone will wake us up when the lock is available<a name="line.1134"></a>
+<span class="sourceLineNo">1133</span>        case LOCK_YIELD_WAIT:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          scheduler.yield(proc);<a name="line.1134"></a>
 <span class="sourceLineNo">1135</span>          break;<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        default:<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>          throw new UnsupportedOperationException();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>      procStack.release(proc);<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      // useful to test the procedure recovery.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (testing != null &amp;&amp; !isRunning()) {<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>      if (proc.isSuccess()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>        if (LOG.isDebugEnabled()) {<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        // Finalize the procedure state<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        if (proc.getProcId() == rootProcId) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>          procedureFinished(proc);<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        } else {<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          execCompletionCleanup(proc);<a name="line.1155"></a>
+<span class="sourceLineNo">1136</span>        case LOCK_EVENT_WAIT:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          // someone will wake us up when the lock is available<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>          break;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        default:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>          throw new UnsupportedOperationException();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      procStack.release(proc);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // useful to test the procedure recovery.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      if (testing != null &amp;&amp; !isRunning()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        break;<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>      if (proc.isSuccess()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        // update metrics on finishing the procedure<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        if (LOG.isDebugEnabled()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1155"></a>
 <span class="sourceLineNo">1156</span>        }<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>        break;<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      }<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    } while (procStack.isFailed());<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    final TEnvironment env = getEnvironment();<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      return LockState.LOCK_ACQUIRED;<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    return proc.doAcquireLock(env);<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    final TEnvironment env = getEnvironment();<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    // for how the framework works, we know that we will always have the lock<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (force || !proc.holdLock(env)) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      proc.doReleaseLock(env);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * Execute the rollback of the full procedure stack.<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * finished to user, and the result will be the fatal exception.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   */<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    if (exception == null) {<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>      exception = procStack.getException();<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      rootProc.setFailure(exception);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      store.update(rootProc);<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span><a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span><a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>    int stackTail = subprocStack.size();<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    boolean reuseLock = false;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    while (stackTail --&gt; 0) {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span><a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      LockState lockState;<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>        // queue waiting for the lock availability<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>        return lockState;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      }<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span><a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      lockState = executeRollback(proc);<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // If the next procedure is the same to this one<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      // we can avoid to lock/unlock each step<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      if (!reuseLock) {<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>        releaseLock(proc, false);<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // useful to test the procedure recovery.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      if (abortRollback) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>        return lockState;<a name="line.1226"></a>
+<span class="sourceLineNo">1157</span>        // Finalize the procedure state<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        if (proc.getProcId() == rootProcId) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>          procedureFinished(proc);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>          execCompletionCleanup(proc);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>      }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>    } while (procStack.isFailed());<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    final TEnvironment env = getEnvironment();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      return LockState.LOCK_ACQUIRED;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    return proc.doAcquireLock(env);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    final TEnvironment env = getEnvironment();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    // for how the framework works, we know that we will always have the lock<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    if (force || !proc.holdLock(env)) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      proc.doReleaseLock(env);<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><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Execute the rollback of the full procedure stack.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * finished to user, and the result will be the fatal exception.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (exception == null) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      exception = procStack.getException();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      rootProc.setFailure(exception);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      store.update(rootProc);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>    int stackTail = subprocStack.size();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    boolean reuseLock = false;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    while (stackTail --&gt; 0) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      LockState lockState;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        // queue waiting for the lock availability<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        return lockState;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      lockState = executeRollback(proc);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      // If the next procedure is the same to this one<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>      // we can avoid to lock/unlock each step<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      if (!reuseLock) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        releaseLock(proc, false);<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>      subprocStack.remove(stackTail);<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      // if the procedure is kind enough to pass the slot to someone else, yield<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      if (proc.isYieldAfterExecutionStep(getEnvironment())) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>        return LockState.LOCK_YIELD_WAIT;<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      }<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span><a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      if (proc != rootProc) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        execCompletionCleanup(proc);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span><a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // Finalize the procedure state<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    LOG.info("Rolled back " + rootProc +<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>             " exec-time=" + StringUtils.humanTimeDiff(rootProc.elapsedTime()));<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    procedureFinished(rootProc);<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    return LockState.LOCK_ACQUIRED;<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span><a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  /**<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * Execute the rollback of the procedure step.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   * It updates the store with the new state (stack index)<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>   * or will remove completly the procedure in case it is a child.<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  private LockState executeRollback(final Procedure proc) {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>    try {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      proc.doRollback(getEnvironment());<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    } catch (IOException e) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      if (LOG.isDebugEnabled()) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        LOG.debug("Roll back attempt failed for " + proc, e);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      }<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    } catch (InterruptedException e) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      handleInterruptedException(proc, e);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    } catch (Throwable e) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      // Catch NullPointerExceptions or similar errors...<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>      LOG.fatal("CODE-BUG: Uncatched runtime exception for procedure: " + proc, e);<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    // allows to kill the executor before something is stored to the wal.<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>    // useful to test the procedure recovery.<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    if (testing != null &amp;&amp; testing.shouldKillBeforeStoreUpdate()) {<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      LOG.debug("TESTING: Kill before store update");<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      stop();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    if (proc.removeStackIndex()) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      proc.setState(ProcedureState.ROLLEDBACK);<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>      if (proc.hasParent()) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>        store.delete(proc.getProcId());<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        procedures.remove(proc.getProcId());<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      } else {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        final long[] childProcIds = rollbackStack.get(proc.getProcId()).getSubprocedureIds();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>        if (childProcIds != null) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>          store.delete(proc, childProcIds);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        } else {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          store.update(proc);<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>    } else {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      store.update(proc);<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return LockState.LOCK_ACQUIRED;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  /**<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   * Executes the specified procedure<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   *  - calls the doExecute() of the procedure<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>   *  - if the procedure execution didn't fail (e.g. invalid user input)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   *     - ...and returned subprocedures<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>   *        - the subprocedures are initialized.<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   *        - the subprocedures are added to the store<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   *        - the subprocedures are added to the runnable queue<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *        - the procedure is now in a WAITING state, waiting for the subprocedures to complete<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   *     - ...if there are no subprocedure<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>   *        - the procedure completed successfully<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>   *        - if there is a parent (WAITING)<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>   *            - the parent state will be set to RUNNABLE<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   *  - in case of failure<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   *    - the store is updated with the new state<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   *    - the executor (caller of this method) will start the rollback of the procedure<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   */<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  private void execProcedure(final RootProcedureState procStack, final Procedure procedure) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>    Preconditions.checkArgument(procedure.getState() == ProcedureState.RUNNABLE);<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Execute the procedure<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    boolean suspended = false;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    boolean reExecute = false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    Procedure[] subprocs = null;<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>    do {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      reExecute = false;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      try {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        subprocs = procedure.doExecute(getEnvironment());<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        if (subprocs != null &amp;&amp; subprocs.length == 0) {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          subprocs = null;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      } catch (ProcedureSuspendedException e) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        suspended = true;<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      } catch (ProcedureYieldException e) {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        if (LOG.isTraceEnabled()) {<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>          LOG.trace("Yield " + procedure + ": " + e.getMessage());<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        scheduler.yield(procedure);<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        return;<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>      } catch (InterruptedException e) {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        handleInterruptedException(procedure, e);<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        scheduler.yield(procedure);<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        return;<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      } catch (Throwable e) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>        // Catch NullPointerExceptions or similar errors...<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        String msg = "CODE-BUG: Uncaught runtime exception: " + procedure;<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        LOG.error(msg, e);<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        procedure.setFailure(new RemoteProcedureException(msg, e));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span><a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>      if (!procedure.isFailed()) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        if (subprocs != null) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>          if (subprocs.length == 1 &amp;&amp; subprocs[0] == procedure) {<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>            // quick-shortcut for a state machine like procedure<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>            subprocs = null;<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            reExecute = true;<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          } else {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>            // yield the c

<TRUNCATED>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index c7010e6..f477ba5 100644
--- a/export_control.html
+++ b/export_control.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -348,7 +348,7 @@ for more details.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/SequentialProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/SequentialProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/SequentialProcedure.html
index 504aab6..3a4dc6b 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/SequentialProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/SequentialProcedure.html
@@ -237,7 +237,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../.
 ./org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../.
 ./../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.
 hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/pro
 cedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">set
 Failure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/
 apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../
 org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../.
 ./org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../.
 ./../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#
 getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache
 .hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwab
 le-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../..
 /../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">was
 Executed</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
index 0bb404e..ba29d65 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
@@ -373,7 +373,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a hr
 ef="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.
 apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.No
 nceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href
 ="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a hr
 ef="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSamePar
 ent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/a
 pache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase
 .util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.Pro
 cedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDeta
 ils</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html
index c3f4ed8..fd2a077 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html
@@ -180,7 +180,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../.
 ./org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-java.io.InputStream-">deserializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apache/hadoo
 p/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInit
 ializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-java.io.OutputStream-">serializeStateData</a>, <a href="../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hado
 op.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">s
 etTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>
 , <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../.
 ./org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-java.io.InputStream-">deserializeStateData</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.h
 tml#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--
 ">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-java.io.OutputStream-">serializeStateData</a>, <a href="../../../../../org/apache/
 hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apa
 che.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#se
 tTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">t
 oStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index ef42cc2..ddc1f12 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -189,8 +189,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
 </ul>
 </li>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index 7586289..777d49b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -125,10 +125,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteCompare.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteCompare</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 </ul>
 </li>
 </ul>

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

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index fc21a77..e8ebdab 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -138,6 +138,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html#abort-java.lang.Void-">abort(Void)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureExecution.TestWaitingProcedure.TestWaitChild</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#abort-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">abort(TestProcedureMetrics.TestProcEnv)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html#abort-org.apache.hadoop.hbase.procedure2.TestProcedureNonce.TestProcEnv-">abort(TestProcedureNonce.TestProcEnv)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestSingleStepProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html#abort">abort</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.BaseTestStepProcedure</a></dt>
@@ -2144,6 +2146,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html#beforeTestMethod--">beforeTestMethod()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerMetrics</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#beginCount">beginCount</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#beginCount">beginCount</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.html#benchmarkAlgorithm-org.apache.hadoop.hbase.io.compress.Compression.Algorithm-java.lang.String-byte:A-int-int-">benchmarkAlgorithm(Compression.Algorithm, String, byte[], int, int)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.html" title="class in org.apache.hadoop.hbase.regionserver">DataBlockEncodingTool</a></dt>
 <dd>
 <div class="block">Check decompress performance of a given algorithm and print it.</div>
@@ -9443,6 +9449,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.BusyWaitProcedure.html#execute-org.apache.hadoop.hbase.procedure2.TestProcedureExecutor.TestProcEnv-">execute(TestProcedureExecutor.TestProcEnv)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.BusyWaitProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureExecutor.BusyWaitProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#execute-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">execute(TestProcedureMetrics.TestProcEnv)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html#execute-org.apache.hadoop.hbase.procedure2.TestProcedureNonce.TestProcEnv-">execute(TestProcedureNonce.TestProcEnv)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestSingleStepProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html#execute-org.apache.hadoop.hbase.procedure2.TestProcedureRecovery.TestProcEnv-">execute(TestProcedureRecovery.TestProcEnv)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.BaseTestStepProcedure</a></dt>
@@ -9702,6 +9710,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControl.Writer.html#failed">failed</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControl.Writer.html" title="class in org.apache.hadoop.hbase.regionserver">TestMultiVersionConcurrencyControl.Writer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#failedCount">failedCount</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#failedCount">failedCount</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.html#failedFuture--">failedFuture()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.html" title="class in org.apache.hadoop.hbase.client">TestAsyncSingleRequestRpcRetryingCaller</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithAbort.FailedInitializationObserver.html#FailedInitializationObserver--">FailedInitializationObserver()</a></span> - Constructor for class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithAbort.FailedInitializationObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">TestRegionServerCoprocessorExceptionWithAbort.FailedInitializationObserver</a></dt>
@@ -10965,6 +10977,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureExecution</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
@@ -15390,6 +15404,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html#htu">htu</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#htu">htu</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html#htu">htu</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#htu">htu</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
@@ -18658,6 +18674,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
@@ -19208,6 +19226,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.html#logDir">logDir</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureExecution</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#logDir">logDir</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html#logDir">logDir</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#logDir">logDir</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
@@ -25065,6 +25085,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html#PROCEDURE_EXECUTOR_SLOTS">PROCEDURE_EXECUTOR_SLOTS</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#PROCEDURE_EXECUTOR_SLOTS">PROCEDURE_EXECUTOR_SLOTS</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html#PROCEDURE_EXECUTOR_SLOTS">PROCEDURE_EXECUTOR_SLOTS</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#PROCEDURE_EXECUTOR_SLOTS">PROCEDURE_EXECUTOR_SLOTS</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
@@ -25085,6 +25107,18 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.InjectAbortOnLoadListener.html#procedureLoaded-long-">procedureLoaded(long)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.InjectAbortOnLoadListener.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureTestingUtility.InjectAbortOnLoadListener</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics--">ProcedureMetrics()</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-">ProcedureMetrics(boolean)</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-boolean-">ProcedureMetrics(boolean, boolean)</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-boolean-int-">ProcedureMetrics(boolean, boolean, int)</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics:A-">ProcedureMetrics(boolean, TestProcedureMetrics.ProcedureMetrics[])</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-boolean-int-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics:A-">ProcedureMetrics(boolean, boolean, int, TestProcedureMetrics.ProcedureMetrics[])</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.html#procedureScheduler">procedureScheduler</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureSchedulerPerformanceEvaluation</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">ProcedureTestingUtility</span></a> - Class in <a href="org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></dt>
@@ -25129,6 +25163,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html#procEnv">procEnv</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#procEnv">procEnv</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html#procEnv">procEnv</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#procEnv">procEnv</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
@@ -25247,6 +25283,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html#procExecutor">procExecutor</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#procExecutor">procExecutor</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html#procExecutor">procExecutor</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#procExecutor">procExecutor</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
@@ -25295,6 +25333,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html#procStore">procStore</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#procStore">procStore</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html#procStore">procStore</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#procStore">procStore</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
@@ -27465,6 +27505,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html#rollback-java.lang.Void-">rollback(Void)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureExecution.TestWaitingProcedure.TestWaitChild</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#rollback-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">rollback(TestProcedureMetrics.TestProcEnv)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html#rollback-org.apache.hadoop.hbase.procedure2.TestProcedureNonce.TestProcEnv-">rollback(TestProcedureNonce.TestProcEnv)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestSingleStepProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html#rollback-org.apache.hadoop.hbase.procedure2.TestProcedureRecovery.TestProcEnv-">rollback(TestProcedureRecovery.TestProcEnv)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.BaseTestStepProcedure</a></dt>
@@ -30340,6 +30382,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
@@ -33348,6 +33392,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestSequentialProcedure.html#subProcs">subProcs</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestSequentialProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureExecution.TestSequentialProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#subprocs">subprocs</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/TestSingleColumnValueFilter.html#substrFilter">substrFilter</a></span> - Variable in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/TestSingleColumnValueFilter.html" title="class in org.apache.hadoop.hbase.filter">TestSingleColumnValueFilter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/TestSingleColumnValueFilter.html#substrFilterNew--">substrFilterNew()</a></span> - Method in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/TestSingleColumnValueFilter.html" title="class in org.apache.hadoop.hbase.filter">TestSingleColumnValueFilter</a></dt>
@@ -33356,6 +33402,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncProcess.html#success">success</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncProcess.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#success">success</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#successCount">successCount</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#successCount">successCount</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestHRegionFileSystem.MockFileSystem.html#successRetryCount">successRetryCount</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestHRegionFileSystem.MockFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">TestHRegionFileSystem.MockFileSystem</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/ColumnAggregationEndpoint.html#sum-com.google.protobuf.RpcController-org.apache.hadoop.hbase.coprocessor.protobuf.generated.ColumnAggregationProtos.SumRequest-com.google.protobuf.RpcCallback-">sum(RpcController, ColumnAggregationProtos.SumRequest, RpcCallback&lt;ColumnAggregationProtos.SumResponse&gt;)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/ColumnAggregationEndpoint.html" title="class in org.apache.hadoop.hbase.coprocessor">ColumnAggregationEndpoint</a></dt>
@@ -34652,6 +34704,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
@@ -40406,6 +40460,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.html#testDir">testDir</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureExecution</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testDir">testDir</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#testDir">testDir</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.html#testDir">testDir</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder</a></dt>
@@ -45129,6 +45185,14 @@
 <dd>
 <div class="block">Run the scan to completetion and check the metric against the specified value</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testMetricForFailedYiledProcedure--">testMetricForFailedYiledProcedure()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testMetricForProcedureWithChildren--">testMetricForProcedureWithChildren()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testMetricForSimpleProcedure--">testMetricForSimpleProcedure()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testMetricForYieldProcedure--">testMetricForYieldProcedure()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/metrics/TestMetricRegistriesLoader.html" title="class in org.apache.hadoop.hbase.metrics"><span class="typeNameLink">TestMetricRegistriesLoader</span></a> - Class in <a href="org/apache/hadoop/hbase/metrics/package-summary.html">org.apache.hadoop.hbase.metrics</a></dt>
 <dd>
 <div class="block">Test class for <code>MetricRegistriesLoader</code>.</div>
@@ -45147,6 +45211,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMetricsConnection.html#TestMetricsConnection--">TestMetricsConnection()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMetricsConnection.html" title="class in org.apache.hadoop.hbase.client">TestMetricsConnection</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testMetricsForFailedProcedure--">testMetricsForFailedProcedure()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/TestMetricsHeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsHeapMemoryManager</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
 <dd>
 <div class="block">Unit test version of rs metrics tests.</div>
@@ -47329,6 +47395,14 @@
 <dd>
 <div class="block">Helper <code>Procedure</code> who's phase for each step is just empty</div>
 </dd>
+<dt><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureMetrics</span></a> - Class in <a href="org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#TestProcedureMetrics--">TestProcedureMetrics()</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureMetrics.ProcedureMetrics</span></a> - Class in <a href="org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureMetrics.TestProcEnv</span></a> - Class in <a href="org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureUtil.TestProcedureNoDefaultConstructor.html#TestProcedureNoDefaultConstructor-int-">TestProcedureNoDefaultConstructor(int)</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureUtil.TestProcedureNoDefaultConstructor.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureUtil.TestProcedureNoDefaultConstructor</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureNonce</span></a> - Class in <a href="org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></dt>
@@ -47425,6 +47499,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html#TestProcEnv--">TestProcEnv()</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore.TestProcEnv</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html#TestProcEnv--">TestProcEnv()</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestProcEnv.html#TestProcEnv--">TestProcEnv()</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestProcEnv</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestProcEnv.html#TestProcEnv--">TestProcEnv()</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestProcEnv</a></dt>
@@ -54720,6 +54796,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestProcEnv.html#toggleKillBeforeStoreUpdate">toggleKillBeforeStoreUpdate</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestChildProcedures.TestProcEnv</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html#toggleKillBeforeStoreUpdate">toggleKillBeforeStoreUpdate</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/TestModelBase.html#toJSON-T-">toJSON(T)</a></span> - Method in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/TestModelBase.html" title="class in org.apache.hadoop.hbase.rest.model">TestModelBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/token/TestTokenAuthentication.TokenServer.html#TokenServer-org.apache.hadoop.conf.Configuration-">TokenServer(Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.security.token.<a href="org/apache/hadoop/hbase/security/token/TestTokenAuthentication.TokenServer.html" title="class in org.apache.hadoop.hbase.security.token">TestTokenAuthentication.TokenServer</a></dt>
@@ -54912,6 +54990,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestProcEnv.html#triggerRollbackOnChild">triggerRollbackOnChild</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestChildProcedures.TestProcEnv</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html#triggerRollbackOnChild">triggerRollbackOnChild</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html#triggerTableCacheRefresh-boolean-org.apache.hadoop.hbase.TableName...-">triggerTableCacheRefresh(boolean, TableName...)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html" title="class in org.apache.hadoop.hbase.quotas">TestQuotaThrottle</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html#triggerUserCacheRefresh-boolean-org.apache.hadoop.hbase.TableName...-">triggerUserCacheRefresh(boolean, TableName...)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html" title="class in org.apache.hadoop.hbase.quotas">TestQuotaThrottle</a></dt>
@@ -55191,6 +55271,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#updateMetricsMap--">updateMetricsMap()</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#updateMetricsOnFinish-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-long-boolean-">updateMetricsOnFinish(TestProcedureMetrics.TestProcEnv, long, boolean)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#updateMetricsOnSubmit-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">updateMetricsOnSubmit(TestProcedureMetrics.TestProcEnv)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestTags.TestCoprocessorForTags.html#updateMutationAddingTags-org.apache.hadoop.hbase.client.Mutation-">updateMutationAddingTags(Mutation)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestTags.TestCoprocessorForTags.html" title="class in org.apache.hadoop.hbase.regionserver">TestTags.TestCoprocessorForTags</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/LoadTestTool.html#updatePercent">updatePercent</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/LoadTestTool.html" title="class in org.apache.hadoop.hbase.util">LoadTestTool</a></dt>
@@ -58162,10 +58246,16 @@ the order they are declared.</div>
 <dl>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.html#yield">yield</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureSchedulerPerformanceEvaluation</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#yield">yield</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestScheduler.html#yield-org.apache.hadoop.hbase.procedure2.Procedure-">yield(Procedure)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">TestYieldProcedures.TestScheduler</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestScheduler.html#yieldCalls">yieldCalls</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">TestYieldProcedures.TestScheduler</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#yieldCount">yieldCount</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#yieldNum">yieldNum</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableSnapshotScanner.html#yyy">yyy</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client">TestTableSnapshotScanner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TestTableSnapshotInputFormat.html#yyy">yyy</a></span> - Static variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TestTableSnapshotInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce">TestTableSnapshotInputFormat</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseCommonTestingUtility.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseCommonTestingUtility.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseCommonTestingUtility.html
index 1875e19..7f3f9cf 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseCommonTestingUtility.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseCommonTestingUtility.html
@@ -243,10 +243,14 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/HBaseCommonTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseCommonTestingUtility</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestProcedureInMemoryChore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html#htu">htu</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#htu">htu</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/HBaseCommonTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseCommonTestingUtility</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureInMemoryChore.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html#htu">htu</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/HBaseCommonTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseCommonTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestProcedureRecovery.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html#htu">htu</a></span></code>&nbsp;</td>
 </tr>
 </tbody>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.RegionProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.RegionProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.RegionProcedure.html
index c90fadd..4b2c85a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.RegionProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.RegionProcedure.html
@@ -259,7 +259,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Test
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp, wasExecuted</code></l
 i>
+<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateMetricsOnFinish, updateM
 etricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.TableProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.TableProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.TableProcedure.html
index ff20330..bf5e45a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.TableProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/MasterProcedureSchedulerPerformanceEvaluation.TableProcedure.html
@@ -247,7 +247,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Test
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp, wasExecuted</code></l
 i>
+<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateMetricsOnFinish, updateM
 etricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestNamespaceProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestNamespaceProcedure.html
index 960566b..58b68c3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestNamespaceProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestNamespaceProcedure.html
@@ -259,7 +259,7 @@ implements org.apache.hadoop.hbase.master.procedure.TableProcedureInterface</pre
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp, wasExecuted</code></l
 i>
+<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateMetricsOnFinish, updateM
 etricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestRegionProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestRegionProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestRegionProcedure.html
index 40f7e29..047ce06 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestRegionProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestRegionProcedure.html
@@ -282,7 +282,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Test
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp, wasExecuted</code></l
 i>
+<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateMetricsOnFinish, updateM
 etricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestTableProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestTableProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestTableProcedure.html
index 192c18b..04b9eab 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestTableProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestTableProcedure.html
@@ -276,7 +276,7 @@ implements org.apache.hadoop.hbase.master.procedure.TableProcedureInterface</pre
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp, wasExecuted</code></l
 i>
+<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateMetricsOnFinish, updateM
 etricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestTableProcedureWithEvent.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestTableProcedureWithEvent.html b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestTableProcedureWithEvent.html
index e110e3a..17ddbb5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestTableProcedureWithEvent.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.TestTableProcedureWithEvent.html
@@ -255,7 +255,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Test
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp, wasExecuted</code></l
 i>
+<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateMetricsOnFinish, updateM
 etricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index 3b2186a..4d7b960 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -541,15 +541,15 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.NoopProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.NoopProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.NoopProcedure.html
index 54cb95e..03865e2 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.NoopProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.NoopProcedure.html
@@ -219,7 +219,7 @@ extends org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnv&gt;</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStr
 ingState, updateTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleS
 B, toStringState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.TestProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.TestProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.TestProcedure.html
index 1bebb24..a79451b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.TestProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.TestProcedure.html
@@ -268,7 +268,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTest
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp,
  wasExecuted</code></li>
+<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateMe
 tricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestChildProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestChildProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestChildProcedure.html
index 7362472..749e289 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestChildProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestChildProcedure.html
@@ -219,7 +219,7 @@ extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="../..
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 a1495ff..0c11099 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
@@ -839,1019 +839,1030 @@
 <span class="sourceLineNo">831</span>  private long pushProcedure(final Procedure proc) {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>    final long currentProcId = proc.getProcId();<a name="line.832"></a>
 <span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the rollback stack for the procedure<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    RootProcedureState stack = new RootProcedureState();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    rollbackStack.put(currentProcId, stack);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // Submit the new subprocedures<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    assert !procedures.containsKey(currentProcId);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    procedures.put(currentProcId, proc);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    sendProcedureAddedNotification(currentProcId);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    scheduler.addBack(proc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return proc.getProcId();<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Send an abort notification the specified procedure.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * @param procId the procedure to abort<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  public boolean abort(final long procId) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    return abort(procId, true);<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>   * Send an abort notification the specified procedure.<a name="line.857"></a>
-<span class="sourceLineNo">858</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>   * @param procId the procedure to abort<a name="line.859"></a>
-<span class="sourceLineNo">860</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    final Procedure proc = procedures.get(procId);<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (proc != null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        return false;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return proc.abort(getEnvironment());<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    return false;<a name="line.871"></a>
-<span class="sourceLineNo">872</span>  }<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>  //  Executor query helpers<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  // ==========================================================================<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public Procedure getProcedure(final long procId) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    return procedures.get(procId);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  }<a name="line.879"></a>
-<span class="sourceLineNo">880</span><a name="line.880"></a>
-<span class="sourceLineNo">881</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    final Procedure proc = getProcedure(procId);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (clazz.isInstance(proc)) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      return (T)proc;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    return null;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  public ProcedureInfo getResult(final long procId) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    return completed.get(procId);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>  }<a name="line.891"></a>
-<span class="sourceLineNo">892</span><a name="line.892"></a>
-<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * Return true if the procedure is finished.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * Use getResult() to check the state or get the result data.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @param procId the ID of the procedure to check<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  public boolean isFinished(final long procId) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    return !procedures.containsKey(procId);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>  }<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * Return true if the procedure is started.<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   * @param procId the ID of the procedure to check<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   */<a name="line.908"></a>
-<span class="sourceLineNo">909</span>  public boolean isStarted(final long procId) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    final Procedure proc = procedures.get(procId);<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (proc == null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      return completed.get(procId) != null;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return proc.wasExecuted();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param procId the ID of the procedure to remove<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   */<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public void removeResult(final long procId) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    final ProcedureInfo result = completed.get(procId);<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    if (result == null) {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      if (LOG.isDebugEnabled()) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      }<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      return;<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>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>  }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    ProcedureInfo result = completed.get(procId);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    Procedure proc = null;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    if (result == null) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      proc = procedures.get(procId);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      if (proc == null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        result = completed.get(procId);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    return new Pair(result, proc);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Check if the user is this procedure's owner<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   * @param procId the target procedure<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param user the user<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   * @return true if the user is the owner of the procedure,<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   *   false otherwise or the owner is unknown.<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   */<a name="line.953"></a>
-<span class="sourceLineNo">954</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    if (user == null) return false;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    final Procedure proc = procedures.get(procId);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    if (proc != null) {<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      return proc.getOwner().equals(user.getShortName());<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>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    if (procInfo == null) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>      // At this time, we cannot check the owner of the procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return false;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  }<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>   * List procedures.<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   * @return the procedures in a list<a name="line.973"></a>
-<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      // it could complete after we walk through procedures list and insert into<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      procedureLists.add(e.getValue());<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    }<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return procedureLists;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  // ==========================================================================<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  //  Listeners helpers<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  // ==========================================================================<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    this.listeners.add(listener);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  }<a name="line.995"></a>
-<span class="sourceLineNo">996</span><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    return this.listeners.remove(listener);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>  }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    if (!this.listeners.isEmpty()) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          listener.procedureLoaded(procId);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>        } catch (Throwable e) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<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>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    if (!this.listeners.isEmpty()) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>          listener.procedureAdded(procId);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        } catch (Throwable e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        }<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>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    if (!this.listeners.isEmpty()) {<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>        try {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          listener.procedureFinished(procId);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>        } catch (Throwable e) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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><a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  // ==========================================================================<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  //  Procedure IDs helpers<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  // ==========================================================================<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  private long nextProcId() {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    long procId = lastProcId.incrementAndGet();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    if (procId &lt; 0) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>        procId = lastProcId.get();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>        if (procId &gt;= 0)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>          break;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      while (procedures.containsKey(procId)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        procId = lastProcId.incrementAndGet();<a name="line.1049"></a>
+<span class="sourceLineNo">834</span>    // Update metrics on start of a procedure<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>    // Create the rollback stack for the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    RootProcedureState stack = new RootProcedureState();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    rollbackStack.put(currentProcId, stack);<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // Submit the new subprocedures<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    assert !procedures.containsKey(currentProcId);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    procedures.put(currentProcId, proc);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    sendProcedureAddedNotification(currentProcId);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    scheduler.addBack(proc);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    return proc.getProcId();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Send an abort notification the specified procedure.<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @param procId the procedure to abort<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public boolean abort(final long procId) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    return abort(procId, true);<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>  /**<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   * Send an abort notification the specified procedure.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.861"></a>
+<span class="sourceLineNo">862</span>   * @param procId the procedure to abort<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    final Procedure proc = procedures.get(procId);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    if (proc != null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return false;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>      return proc.abort(getEnvironment());<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    return false;<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>  //  Executor query helpers<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  // ==========================================================================<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  public Procedure getProcedure(final long procId) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    return procedures.get(procId);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    final Procedure proc = getProcedure(procId);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (clazz.isInstance(proc)) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      return (T)proc;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    return null;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>  }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>  public ProcedureInfo getResult(final long procId) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    return completed.get(procId);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>  }<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>   * Return true if the procedure is finished.<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Use getResult() to check the state or get the result data.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @param procId the ID of the procedure to check<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>   */<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public boolean isFinished(final long procId) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    return !procedures.containsKey(procId);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * Return true if the procedure is started.<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * @param procId the ID of the procedure to check<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  public boolean isStarted(final long procId) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    final Procedure proc = procedures.get(procId);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    if (proc == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      return completed.get(procId) != null;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return proc.wasExecuted();<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param procId the ID of the procedure to remove<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  public void removeResult(final long procId) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>    final ProcedureInfo result = completed.get(procId);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    if (result == null) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      if (LOG.isDebugEnabled()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      return;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<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>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    ProcedureInfo result = completed.get(procId);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    Procedure proc = null;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    if (result == null) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      proc = procedures.get(procId);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      if (proc == null) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        result = completed.get(procId);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    return new Pair(result, proc);<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>   * Check if the user is this procedure's owner<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   * @param procId the target procedure<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param user the user<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return true if the user is the owner of the procedure,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   *   false otherwise or the owner is unknown.<a name="line.955"></a>
+<span class="sourceLineNo">956</span>   */<a name="line.956"></a>
+<span class="sourceLineNo">957</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    if (user == null) return false;<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>    final Procedure proc = procedures.get(procId);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    if (proc != null) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      return proc.getOwner().equals(user.getShortName());<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    if (procInfo == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      // At this time, we cannot check the owner of the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      return false;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<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>  /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>   * List procedures.<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * @return the procedures in a list<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      // it could complete after we walk through procedures list and insert into<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      procedureLists.add(e.getValue());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    return procedureLists;<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>  //  Listeners helpers<a name="line.994"></a>
+<span class="sourceLineNo">995</span>  // ==========================================================================<a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    this.listeners.add(listener);<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>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    return this.listeners.remove(listener);<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>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    if (!this.listeners.isEmpty()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          listener.procedureLoaded(procId);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        } catch (Throwable e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    if (!this.listeners.isEmpty()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          listener.procedureAdded(procId);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        } catch (Throwable e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    if (!this.listeners.isEmpty()) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        try {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          listener.procedureFinished(procId);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        } catch (Throwable e) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  // ==========================================================================<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>  //  Procedure IDs helpers<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  // ==========================================================================<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>  private long nextProcId() {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    long procId = lastProcId.incrementAndGet();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    if (procId &lt; 0) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        procId = lastProcId.get();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        if (procId &gt;= 0)<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>          break;<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return procId;<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>  @VisibleForTesting<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  protected long getLastProcId() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return lastProcId.get();<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>  @VisibleForTesting<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span><a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>  // ==========================================================================<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  //  Executions<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  // ==========================================================================<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  private void executeProcedure(final Procedure proc) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    if (rootProcId == null) {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      executeRollback(proc);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      return;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    if (procStack == null) return;<a name="line.1082"></a>
+<span class="sourceLineNo">1051</span>      while (procedures.containsKey(procId)) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        procId = lastProcId.incrementAndGet();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    return procId;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>  @VisibleForTesting<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>  protected long getLastProcId() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    return lastProcId.get();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>  }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  @VisibleForTesting<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>  }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  // ==========================================================================<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>  //  Executions<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  // ==========================================================================<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>  private void executeProcedure(final Procedure proc) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    if (rootProcId == null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      executeRollback(proc);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>      return;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    }<a name="line.1082"></a>
 <span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    do {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      // Try to acquire the execution<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (!procStack.acquire(proc)) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        if (procStack.setRollback()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>            case LOCK_ACQUIRED:<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>                break;<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>            case LOCK_YIELD_WAIT:<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>              procStack.unsetRollback();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>              scheduler.yield(proc);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>              break;<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>            case LOCK_EVENT_WAIT:<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>              procStack.unsetRollback();<a name="line.1097"></a>
+<span class="sourceLineNo">1084</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    if (procStack == null) return;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    do {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>      // Try to acquire the execution<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>      if (!procStack.acquire(proc)) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        if (procStack.setRollback()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>            case LOCK_ACQUIRED:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>            case LOCK_YIELD_WAIT:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>              procStack.unsetRollback();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>              scheduler.yield(proc);<a name="line.1097"></a>
 <span class="sourceLineNo">1098</span>              break;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>            default:<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>              throw new UnsupportedOperationException();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>          }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        } else {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>          // if we can't rollback means that some child is still running.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>          // the rollback will be executed after all the children are done.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          if (!proc.wasExecuted()) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>            switch (executeRollback(proc)) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>              case LOCK_ACQUIRED:<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>                break;<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>              case LOCK_YIELD_WAIT:<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>                scheduler.yield(proc);<a name="line.1111"></a>
+<span class="sourceLineNo">1099</span>            case LOCK_EVENT_WAIT:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>              procStack.unsetRollback();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>              break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>            default:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>              throw new UnsupportedOperationException();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>          // if we can't rollback means that some child is still running.<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>          // the rollback will be executed after all the children are done.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>          if (!proc.wasExecuted()) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>            switch (executeRollback(proc)) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>              case LOCK_ACQUIRED:<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>                break;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>              case LOCK_EVENT_WAIT:<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>                break;<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>              default:<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>                throw new UnsupportedOperationException();<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>        break;<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>      }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span><a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      // Execute the procedure<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      switch (acquireLock(proc)) {<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>        case LOCK_ACQUIRED:<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>          execProcedure(procStack, proc);<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>          releaseLock(proc, false);<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>          break;<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>        case LOCK_YIELD_WAIT:<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          scheduler.yield(proc);<a name="line.1131"></a>
+<span class="sourceLineNo">1113</span>              case LOCK_YIELD_WAIT:<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                scheduler.yield(proc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>              case LOCK_EVENT_WAIT:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                break;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>              default:<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                throw new UnsupportedOperationException();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>            }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        break;<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>      // Execute the procedure<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      switch (acquireLock(proc)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        case LOCK_ACQUIRED:<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>          execProcedure(procStack, proc);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          releaseLock(proc, false);<a name="line.1131"></a>
 <span class="sourceLineNo">1132</span>          break;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        case LOCK_EVENT_WAIT:<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>          // someone will wake us up when the lock is available<a name="line.1134"></a>
+<span class="sourceLineNo">1133</span>        case LOCK_YIELD_WAIT:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          scheduler.yield(proc);<a name="line.1134"></a>
 <span class="sourceLineNo">1135</span>          break;<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        default:<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>          throw new UnsupportedOperationException();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>      procStack.release(proc);<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      // useful to test the procedure recovery.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (testing != null &amp;&amp; !isRunning()) {<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>      if (proc.isSuccess()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>        if (LOG.isDebugEnabled()) {<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        // Finalize the procedure state<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        if (proc.getProcId() == rootProcId) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>          procedureFinished(proc);<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        } else {<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          execCompletionCleanup(proc);<a name="line.1155"></a>
+<span class="sourceLineNo">1136</span>        case LOCK_EVENT_WAIT:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          // someone will wake us up when the lock is available<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>          break;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        default:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>          throw new UnsupportedOperationException();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      procStack.release(proc);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // useful to test the procedure recovery.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      if (testing != null &amp;&amp; !isRunning()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        break;<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>      if (proc.isSuccess()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        // update metrics on finishing the procedure<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        if (LOG.isDebugEnabled()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1155"></a>
 <span class="sourceLineNo">1156</span>        }<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>        break;<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      }<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    } while (procStack.isFailed());<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    final TEnvironment env = getEnvironment();<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      return LockState.LOCK_ACQUIRED;<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    return proc.doAcquireLock(env);<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    final TEnvironment env = getEnvironment();<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    // for how the framework works, we know that we will always have the lock<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (force || !proc.holdLock(env)) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      proc.doReleaseLock(env);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * Execute the rollback of the full procedure stack.<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * finished to user, and the result will be the fatal exception.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   */<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    if (exception == null) {<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>      exception = procStack.getException();<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      rootProc.setFailure(exception);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      store.update(rootProc);<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span><a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span><a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>    int stackTail = subprocStack.size();<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    boolean reuseLock = false;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    while (stackTail --&gt; 0) {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span><a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      LockState lockState;<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>        // queue waiting for the lock availability<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>        return lockState;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      }<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span><a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      lockState = executeRollback(proc);<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // If the next procedure is the same to this one<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      // we can avoid to lock/unlock each step<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      if (!reuseLock) {<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>        releaseLock(proc, false);<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // useful to test the procedure recovery.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      if (abortRollback) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>        return lockState;<a name="line.1226"></a>
+<span class="sourceLineNo">1157</span>        // Finalize the procedure state<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        if (proc.getProcId() == rootProcId) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>          procedureFinished(proc);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>          execCompletionCleanup(proc);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>      }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>    } while (procStack.isFailed());<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    final TEnvironment env = getEnvironment();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      return LockState.LOCK_ACQUIRED;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    return proc.doAcquireLock(env);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    final TEnvironment env = getEnvironment();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    // for how the framework works, we know that we will always have the lock<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    if (force || !proc.holdLock(env)) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      proc.doReleaseLock(env);<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><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Execute the rollback of the full procedure stack.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * finished to user, and the result will be the fatal exception.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (exception == null) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      exception = procStack.getException();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      rootProc.setFailure(exception);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      store.update(rootProc);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>    int stackTail = subprocStack.size();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    boolean reuseLock = false;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    while (stackTail --&gt; 0) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      LockState lockState;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        // queue waiting for the lock availability<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        return lockState;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      lockState = executeRollback(proc);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      // If the next procedure is the same to this one<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>      // we can avoid to lock/unlock each step<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      if (!reuseLock) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        releaseLock(proc, false);<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>      subprocStack.remove(stackTail);<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      // if the procedure is kind enough to pass the slot to someone else, yield<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      if (proc.isYieldAfterExecutionStep(getEnvironment())) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>        return LockState.LOCK_YIELD_WAIT;<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      }<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span><a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      if (proc != rootProc) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        execCompletionCleanup(proc);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span><a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // Finalize the procedure state<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    LOG.info("Rolled back " + rootProc +<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>             " exec-time=" + StringUtils.humanTimeDiff(rootProc.elapsedTime()));<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    procedureFinished(rootProc);<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    return LockState.LOCK_ACQUIRED;<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span><a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  /**<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * Execute the rollback of the procedure step.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   * It updates the store with the new state (stack index)<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>   * or will remove completly the procedure in case it is a child.<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  private LockState executeRollback(final Procedure proc) {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>    try {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      proc.doRollback(getEnvironment());<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    } catch (IOException e) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      if (LOG.isDebugEnabled()) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        LOG.debug("Roll back attempt failed for " + proc, e);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      }<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    } catch (InterruptedException e) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      handleInterruptedException(proc, e);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    } catch (Throwable e) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      // Catch NullPointerExceptions or similar errors...<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>      LOG.fatal("CODE-BUG: Uncatched runtime exception for procedure: " + proc, e);<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    // allows to kill the executor before something is stored to the wal.<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>    // useful to test the procedure recovery.<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    if (testing != null &amp;&amp; testing.shouldKillBeforeStoreUpdate()) {<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      LOG.debug("TESTING: Kill before store update");<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      stop();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    if (proc.removeStackIndex()) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      proc.setState(ProcedureState.ROLLEDBACK);<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>      if (proc.hasParent()) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>        store.delete(proc.getProcId());<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        procedures.remove(proc.getProcId());<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      } else {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        final long[] childProcIds = rollbackStack.get(proc.getProcId()).getSubprocedureIds();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>        if (childProcIds != null) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>          store.delete(proc, childProcIds);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        } else {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          store.update(proc);<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>    } else {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      store.update(proc);<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return LockState.LOCK_ACQUIRED;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  /**<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   * Executes the specified procedure<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   *  - calls the doExecute() of the procedure<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>   *  - if the procedure execution didn't fail (e.g. invalid user input)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   *     - ...and returned subprocedures<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>   *        - the subprocedures are initialized.<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   *        - the subprocedures are added to the store<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   *        - the subprocedures are added to the runnable queue<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *        - the procedure is now in a WAITING state, waiting for the subprocedures to complete<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   *     - ...if there are no subprocedure<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>   *        - the procedure completed successfully<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>   *        - if there is a parent (WAITING)<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>   *            - the parent state will be set to RUNNABLE<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   *  - in case of failure<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   *    - the store is updated with the new state<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   *    - the executor (caller of this method) will start the rollback of the procedure<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   */<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  private void execProcedure(final RootProcedureState procStack, final Procedure procedure) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>    Preconditions.checkArgument(procedure.getState() == ProcedureState.RUNNABLE);<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Execute the procedure<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    boolean suspended = false;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    boolean reExecute = false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    Procedure[] subprocs = null;<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>    do {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      reExecute = false;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      try {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        subprocs = procedure.doExecute(getEnvironment());<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        if (subprocs != null &amp;&amp; subprocs.length == 0) {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          subprocs = null;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      } catch (ProcedureSuspendedException e) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        suspended = true;<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      } catch (ProcedureYieldException e) {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        if (LOG.isTraceEnabled()) {<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>          LOG.trace("Yield " + procedure + ": " + e.getMessage());<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        scheduler.yield(procedure);<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        return;<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>      } catch (InterruptedException e) {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        handleInterruptedException(procedure, e);<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        scheduler.yield(procedure);<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        return;<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      } catch (Throwable e) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>        // Catch NullPointerExceptions or similar errors...<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        String msg = "CODE-BUG: Uncaught runtime exception: " + procedure;<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        LOG.error(msg, e);<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        procedure.setFailure(new RemoteProcedureException(msg, e));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span><a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>      if (!procedure.isFailed()) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        if (subprocs != null) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>          if (subprocs.length == 1 &amp;&amp; subprocs[0] == procedure) {<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>            // quick-shortcut for a state machine like procedure<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>            subprocs = null;<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            reExecute = true;<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          } else {

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html
index 7b7fb58..ec84c50 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html
@@ -126,7 +126,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1720">ProcedureExecutor.StoppableThread</a>
+<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1731">ProcedureExecutor.StoppableThread</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></pre>
 </li>
 </ul>
@@ -237,7 +237,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>StoppableThread</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html#line.1721">StoppableThread</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html#line.1732">StoppableThread</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 </li>
 </ul>
@@ -255,7 +255,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sendStopSignal</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html#line.1725">sendStopSignal</a>()</pre>
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html#line.1736">sendStopSignal</a>()</pre>
 </li>
 </ul>
 <a name="awaitTermination--">
@@ -264,7 +264,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>awaitTermination</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html#line.1727">awaitTermination</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html#line.1738">awaitTermination</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html
index 55bebbf..924cb85 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1612">ProcedureExecutor.TimeoutExecutorThread</a>
+<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1623">ProcedureExecutor.TimeoutExecutorThread</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.StoppableThread</a></pre>
 </li>
 </ul>
@@ -283,7 +283,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>queue</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/DelayQueue.html?is-external=true" title="class or interface in java.util.concurrent">DelayQueue</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/util/DelayedUtil.DelayedWithTimeout.html" title="interface in org.apache.hadoop.hbase.procedure2.util">DelayedUtil.DelayedWithTimeout</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1613">queue</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/DelayQueue.html?is-external=true" title="class or interface in java.util.concurrent">DelayQueue</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/util/DelayedUtil.DelayedWithTimeout.html" title="interface in org.apache.hadoop.hbase.procedure2.util">DelayedUtil.DelayedWithTimeout</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1624">queue</a></pre>
 </li>
 </ul>
 </li>
@@ -300,7 +300,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TimeoutExecutorThread</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1615">TimeoutExecutorThread</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1626">TimeoutExecutorThread</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group)</pre>
 </li>
 </ul>
 </li>
@@ -317,7 +317,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>sendStopSignal</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1620">sendStopSignal</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1631">sendStopSignal</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html#sendStopSignal--">sendStopSignal</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.StoppableThread</a></code></dd>
@@ -330,7 +330,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1625">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1636">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -345,7 +345,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1650">add</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.InlineChore</a>&nbsp;chore)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1661">add</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.InlineChore</a>&nbsp;chore)</pre>
 </li>
 </ul>
 <a name="add-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -354,7 +354,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1655">add</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;procedure)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1666">add</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;procedure)</pre>
 </li>
 </ul>
 <a name="remove-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -363,7 +363,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>remove</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1660">remove</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;procedure)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1671">remove</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;procedure)</pre>
 </li>
 </ul>
 <a name="execInlineChore-org.apache.hadoop.hbase.procedure2.ProcedureExecutor.InlineChore-">
@@ -372,7 +372,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>execInlineChore</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1664">execInlineChore</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.InlineChore</a>&nbsp;chore)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1675">execInlineChore</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.InlineChore</a>&nbsp;chore)</pre>
 </li>
 </ul>
 <a name="execDelayedProcedure-org.apache.hadoop.hbase.procedure2.ProcedureExecutor.DelayedProcedure-">
@@ -381,7 +381,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>execDelayedProcedure</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1669">execDelayedProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.DelayedProcedure</a>&nbsp;delayed)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1680">execDelayedProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.DelayedProcedure</a>&nbsp;delayed)</pre>
 </li>
 </ul>
 <a name="executeInMemoryChore-org.apache.hadoop.hbase.procedure2.ProcedureInMemoryChore-">
@@ -390,7 +390,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>executeInMemoryChore</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1687">executeInMemoryChore</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureInMemoryChore</a>&nbsp;chore)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1698">executeInMemoryChore</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureInMemoryChore</a>&nbsp;chore)</pre>
 </li>
 </ul>
 <a name="executeTimedoutProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -399,7 +399,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>executeTimedoutProcedure</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html#line.1700">executeTimedoutProcedure</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.TimeoutExecutorThread.html#line.1711">executeTimedoutProcedure</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>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
index e92db8c..ed88a9c 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1770">ProcedureExecutor.WorkerMonitor</a>
+<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1781">ProcedureExecutor.WorkerMonitor</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.InlineChore</a></pre>
 </li>
 </ul>
@@ -277,7 +277,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>WORKER_MONITOR_INTERVAL_CONF_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1771">WORKER_MONITOR_INTERVAL_CONF_KEY</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1782">WORKER_MONITOR_INTERVAL_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.WORKER_MONITOR_INTERVAL_CONF_KEY">Constant Field Values</a></dd>
@@ -290,7 +290,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_WORKER_MONITOR_INTERVAL</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1773">DEFAULT_WORKER_MONITOR_INTERVAL</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1784">DEFAULT_WORKER_MONITOR_INTERVAL</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.DEFAULT_WORKER_MONITOR_INTERVAL">Constant Field Values</a></dd>
@@ -303,7 +303,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>WORKER_STUCK_THRESHOLD_CONF_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1775">WORKER_STUCK_THRESHOLD_CONF_KEY</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1786">WORKER_STUCK_THRESHOLD_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.WORKER_STUCK_THRESHOLD_CONF_KEY">Constant Field Values</a></dd>
@@ -316,7 +316,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_WORKER_STUCK_THRESHOLD</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1777">DEFAULT_WORKER_STUCK_THRESHOLD</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1788">DEFAULT_WORKER_STUCK_THRESHOLD</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.DEFAULT_WORKER_STUCK_THRESHOLD">Constant Field Values</a></dd>
@@ -329,7 +329,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>WORKER_ADD_STUCK_PERCENTAGE_CONF_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1779">WORKER_ADD_STUCK_PERCENTAGE_CONF_KEY</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1790">WORKER_ADD_STUCK_PERCENTAGE_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.WORKER_ADD_STUCK_PERCENTAGE_CONF_KEY">Constant Field Values</a></dd>
@@ -342,7 +342,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_WORKER_ADD_STUCK_PERCENTAGE</h4>
-<pre>private static final&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1781">DEFAULT_WORKER_ADD_STUCK_PERCENTAGE</a></pre>
+<pre>private static final&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1792">DEFAULT_WORKER_ADD_STUCK_PERCENTAGE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.WorkerMonitor.DEFAULT_WORKER_ADD_STUCK_PERCENTAGE">Constant Field Values</a></dd>
@@ -355,7 +355,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>addWorkerStuckPercentage</h4>
-<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1783">addWorkerStuckPercentage</a></pre>
+<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1794">addWorkerStuckPercentage</a></pre>
 </li>
 </ul>
 <a name="timeoutInterval">
@@ -364,7 +364,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>timeoutInterval</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1784">timeoutInterval</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1795">timeoutInterval</a></pre>
 </li>
 </ul>
 <a name="stuckThreshold">
@@ -373,7 +373,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stuckThreshold</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1785">stuckThreshold</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1796">stuckThreshold</a></pre>
 </li>
 </ul>
 </li>
@@ -390,7 +390,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>WorkerMonitor</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1787">WorkerMonitor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1798">WorkerMonitor</a>()</pre>
 </li>
 </ul>
 </li>
@@ -407,7 +407,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1792">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1803">run</a>()</pre>
 </li>
 </ul>
 <a name="checkForStuckWorkers--">
@@ -416,7 +416,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>checkForStuckWorkers</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1800">checkForStuckWorkers</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1811">checkForStuckWorkers</a>()</pre>
 </li>
 </ul>
 <a name="checkThreadCount-int-">
@@ -425,7 +425,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>checkThreadCount</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1816">checkThreadCount</a>(int&nbsp;stuckCount)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1827">checkThreadCount</a>(int&nbsp;stuckCount)</pre>
 </li>
 </ul>
 <a name="refreshConfig--">
@@ -434,7 +434,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>refreshConfig</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1832">refreshConfig</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1843">refreshConfig</a>()</pre>
 </li>
 </ul>
 <a name="getTimeoutInterval--">
@@ -443,7 +443,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getTimeoutInterval</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1842">getTimeoutInterval</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html#line.1853">getTimeoutInterval</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#getTimeoutInterval--">getTimeoutInterval</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.InlineChore</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
index 559cec9..17788a6 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1559">ProcedureExecutor.WorkerThread</a>
+<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1570">ProcedureExecutor.WorkerThread</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.StoppableThread</a></pre>
 </li>
 </ul>
@@ -263,7 +263,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>executionStartTime</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1560">executionStartTime</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1571">executionStartTime</a></pre>
 </li>
 </ul>
 </li>
@@ -280,7 +280,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>WorkerThread</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1562">WorkerThread</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1573">WorkerThread</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/ThreadGroup.html?is-external=true" title="class or interface in java.lang">ThreadGroup</a>&nbsp;group)</pre>
 </li>
 </ul>
 </li>
@@ -297,7 +297,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>sendStopSignal</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1567">sendStopSignal</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1578">sendStopSignal</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html#sendStopSignal--">sendStopSignal</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor.StoppableThread</a></code></dd>
@@ -310,7 +310,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1572">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1583">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -325,7 +325,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentRunTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1599">getCurrentRunTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1610">getCurrentRunTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the time since the current procedure is running</dd>
@@ -338,7 +338,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExec
 <ul class="blockListLast">
 <li class="blockList">
 <h4>keepAlive</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1603">keepAlive</a>(long&nbsp;lastUpdate)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html#line.1614">keepAlive</a>(long&nbsp;lastUpdate)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 87e1cbb..75c29de 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
@@ -1306,7 +1306,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.852">abort</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.855">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>
@@ -1323,7 +1323,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.863">abort</a>(long&nbsp;procId,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.866">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>
@@ -1342,7 +1342,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.877">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.880">getProcedure</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="getProcedure-java.lang.Class-long-">
@@ -1351,7 +1351,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedure</h4>
-<pre>public&nbsp;&lt;T extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;&nbsp;T&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.881">getProcedure</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+<pre>public&nbsp;&lt;T extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;&nbsp;T&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.884">getProcedure</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
                                             long&nbsp;procId)</pre>
 </li>
 </ul>
@@ -1361,7 +1361,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.889">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.892">getResult</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="isFinished-long-">
@@ -1370,7 +1370,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.900">isFinished</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.903">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>
@@ -1388,7 +1388,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.909">isStarted</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.912">isStarted</a>(long&nbsp;procId)</pre>
 <div class="block">Return true if the procedure is started.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1404,7 +1404,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.921">removeResult</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.924">removeResult</a>(long&nbsp;procId)</pre>
 <div class="block">Mark the specified completed procedure, as ready to remove.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1418,7 +1418,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <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.935">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.938">getResultOrProcedure</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="isProcedureOwner-long-org.apache.hadoop.hbase.security.User-">
@@ -1427,7 +1427,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.954">isProcedureOwner</a>(long&nbsp;procId,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.957">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>
@@ -1446,7 +1446,7 @@ extends <a href="http://docs.oracle.com/javase/8/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/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/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.975">listProcedures</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/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.978">listProcedures</a>()</pre>
 <div class="block">List procedures.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1460,7 +1460,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.993">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.996">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-">
@@ -1469,7 +1469,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.997">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.1000">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="sendProcedureLoadedNotification-long-">
@@ -1478,7 +1478,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.1001">sendProcedureLoadedNotification</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1004">sendProcedureLoadedNotification</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="sendProcedureAddedNotification-long-">
@@ -1487,7 +1487,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.1013">sendProcedureAddedNotification</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1016">sendProcedureAddedNotification</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="sendProcedureFinishedNotification-long-">
@@ -1496,7 +1496,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.1025">sendProcedureFinishedNotification</a>(long&nbsp;procId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1028">sendProcedureFinishedNotification</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="nextProcId--">
@@ -1505,7 +1505,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.1040">nextProcId</a>()</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1043">nextProcId</a>()</pre>
 </li>
 </ul>
 <a name="getLastProcId--">
@@ -1514,7 +1514,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastProcId</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1057">getLastProcId</a>()</pre>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1060">getLastProcId</a>()</pre>
 </li>
 </ul>
 <a name="getActiveProcIds--">
@@ -1523,7 +1523,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveProcIds</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1062">getActiveProcIds</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1065">getActiveProcIds</a>()</pre>
 </li>
 </ul>
 <a name="getRootProcedureId-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1532,7 +1532,7 @@ extends <a href="http://docs.oracle.com/javase/8/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/8/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.1066">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/8/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.1069">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="executeProcedure-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1541,7 +1541,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>executeProcedure</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1073">executeProcedure</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.1076">executeProcedure</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="acquireLock-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1550,7 +1550,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>acquireLock</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1162">acquireLock</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="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1168">acquireLock</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="releaseLock-org.apache.hadoop.hbase.procedure2.Procedure-boolean-">
@@ -1559,7 +1559,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>releaseLock</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1173">releaseLock</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.1179">releaseLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc,
                          boolean&nbsp;force)</pre>
 </li>
 </ul>
@@ -1569,7 +1569,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>executeRollback</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1187">executeRollback</a>(long&nbsp;rootProcId,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1193">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
@@ -1582,7 +1582,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>executeRollback</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1253">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;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1259">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>
@@ -1594,7 +1594,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.1314">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.1324">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
@@ -1619,7 +1619,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeChildren</h4>
-<pre>private&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.1408">initializeChildren</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;<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.1418">initializeChildren</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,
                                        <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>[]&nbsp;subprocs)</pre>
 </li>
@@ -1630,7 +1630,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>submitChildrenProcedures</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1444">submitChildrenProcedures</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>[]&nbsp;subprocs)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1454">submitChildrenProcedures</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>[]&nbsp;subprocs)</pre>
 </li>
 </ul>
 <a name="countDownChildren-org.apache.hadoop.hbase.procedure2.RootProcedureState-org.apache.hadoop.hbase.procedure2.Procedure-">
@@ -1639,7 +1639,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>countDownChildren</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1453">countDownChildren</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.1464">countDownChildren</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>
 </li>
 </ul>
@@ -1649,7 +1649,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>updateStoreOnExec</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1477">updateStoreOnExec</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.1488">updateStoreOnExec</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,
                                <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>[]&nbsp;subprocs)</pre>
 </li>
@@ -1660,7 +1660,7 @@ extends <a href="http://docs.oracle.com/javase/8/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.1505">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.1516">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/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>&nbsp;e)</pre>
 </li>
 </ul>
@@ -1670,7 +1670,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>execCompletionCleanup</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1517">execCompletionCleanup</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.1528">execCompletionCleanup</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-">
@@ -1679,7 +1679,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>procedureFinished</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1530">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.1541">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>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html
index a2df950..20481ff 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html
@@ -243,7 +243,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a hr
 ef="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.
 apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpda
 te-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>
 , <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">t
 oStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a hr
 ef="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSamePar
 ent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/a
 pache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#set
 LastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackInd
 exes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.S
 tringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html
index a3ba133..9e2d08d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html
@@ -27,180 +27,179 @@
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.procedure2;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.util.ArrayList;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.commons.logging.Log;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.commons.logging.LogFactory;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.FileSystem;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.fs.Path;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.After;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.Before;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import static org.junit.Assert.assertEquals;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import static org.junit.Assert.assertTrue;<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>@Category({MasterTests.class, SmallTests.class})<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class TestStateMachineProcedure {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private static final Log LOG = LogFactory.getLog(TestStateMachineProcedure.class);<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static final Exception TEST_FAILURE_EXCEPTION = new Exception("test failure") {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    @Override<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    public boolean equals(final Object other) {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      if (this == other) return true;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>      if (!(other instanceof Exception)) return false;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      // we are going to serialize the exception in the test,<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      // so the instance comparison will not match<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      return getMessage().equals(((Exception)other).getMessage());<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    }<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>    @Override<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    public int hashCode() {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      return getMessage().hashCode();<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><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private ProcedureStore procStore;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private HBaseCommonTestingUtility htu;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private FileSystem fs;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private Path testDir;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private Path logDir;<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  @Before<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public void setUp() throws IOException {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    htu = new HBaseCommonTestingUtility();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    testDir = htu.getDataTestDir();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>    logDir = new Path(testDir, "proc-logs");<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    procStore = ProcedureTestingUtility.createWalStore(htu.getConfiguration(), fs, logDir);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    procExecutor = new ProcedureExecutor(htu.getConfiguration(), new TestProcEnv(), procStore);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<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>  @After<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public void tearDown() throws IOException {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, false);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    assertTrue("expected executor to be running", procExecutor.isRunning());<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>    procExecutor.stop();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    procStore.stop(false);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    fs.delete(logDir, true);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  @Test<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public void testChildOnLastStep() {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<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>  @Test<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public void testChildOnLastStepDoubleExecution() throws Exception {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<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>  @Test<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public void testChildOnLastStepWithRollback() {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    assertEquals(3, procExecutor.getEnvironment().rollbackCount.get());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  @Test<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public void testChildOnLastStepWithRollbackDoubleExecution() throws Exception {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId, true);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    assertEquals(6, procExecutor.getEnvironment().rollbackCount.get());<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<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 enum TestSMProcedureState { STEP_1, STEP_2 };<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static class TestSMProcedure<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      extends StateMachineProcedure&lt;TestProcEnv, TestSMProcedureState&gt; {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    protected Flow executeFromState(TestProcEnv env, TestSMProcedureState state) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      LOG.info("EXEC " + state + " " + this);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      env.execCount.incrementAndGet();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      switch (state) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        case STEP_1:<a name="line.145"></a>
-<span class="sourceLineNo">146</span>          setNextState(TestSMProcedureState.STEP_2);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>          break;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        case STEP_2:<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          addChildProcedure(new SimpleChildProcedure());<a name="line.149"></a>
-<span class="sourceLineNo">150</span>          return Flow.NO_MORE_STATE;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      return Flow.HAS_MORE_STATE;<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>    protected void rollbackState(TestProcEnv env, TestSMProcedureState state) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      LOG.info("ROLLBACK " + state + " " + this);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      env.rollbackCount.incrementAndGet();<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>    protected TestSMProcedureState getState(int stateId) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return TestSMProcedureState.values()[stateId];<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>    protected int getStateId(TestSMProcedureState state) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      return state.ordinal();<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>    protected TestSMProcedureState getInitialState() {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      return TestSMProcedureState.STEP_1;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public static class SimpleChildProcedure extends NoopProcedure&lt;TestProcEnv&gt; {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    protected Procedure[] execute(TestProcEnv env) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      LOG.info("EXEC " + this);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      env.execCount.incrementAndGet();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      if (env.triggerChildRollback) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        setFailure("test-failure", TEST_FAILURE_EXCEPTION);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      return null;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    protected void rollback(TestProcEnv env) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      LOG.info("ROLLBACK " + this);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      env.rollbackCount.incrementAndGet();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  public class TestProcEnv {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    AtomicInteger execCount = new AtomicInteger(0);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    AtomicInteger rollbackCount = new AtomicInteger(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    boolean triggerChildRollback = false;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>}<a name="line.195"></a>
+<span class="sourceLineNo">022</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.logging.Log;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.logging.LogFactory;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.fs.FileSystem;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.Path;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.junit.After;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.junit.Before;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.junit.Test;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.experimental.categories.Category;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>import static org.junit.Assert.assertEquals;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import static org.junit.Assert.assertTrue;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>@Category({MasterTests.class, SmallTests.class})<a name="line.42"></a>
+<span class="sourceLineNo">043</span>public class TestStateMachineProcedure {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  private static final Log LOG = LogFactory.getLog(TestStateMachineProcedure.class);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private static final Exception TEST_FAILURE_EXCEPTION = new Exception("test failure") {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    public boolean equals(final Object other) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      if (this == other) return true;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      if (!(other instanceof Exception)) return false;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      // we are going to serialize the exception in the test,<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      // so the instance comparison will not match<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      return getMessage().equals(((Exception)other).getMessage());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>    @Override<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    public int hashCode() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      return getMessage().hashCode();<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><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private ProcedureStore procStore;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private HBaseCommonTestingUtility htu;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private FileSystem fs;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private Path testDir;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private Path logDir;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  @Before<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public void setUp() throws IOException {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    htu = new HBaseCommonTestingUtility();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    testDir = htu.getDataTestDir();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>    logDir = new Path(testDir, "proc-logs");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    procStore = ProcedureTestingUtility.createWalStore(htu.getConfiguration(), fs, logDir);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    procExecutor = new ProcedureExecutor(htu.getConfiguration(), new TestProcEnv(), procStore);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  @After<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public void tearDown() throws IOException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, false);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    assertTrue("expected executor to be running", procExecutor.isRunning());<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>    procExecutor.stop();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    procStore.stop(false);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    fs.delete(logDir, true);<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>  @Test<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public void testChildOnLastStep() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @Test<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public void testChildOnLastStepDoubleExecution() throws Exception {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  @Test<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public void testChildOnLastStepWithRollback() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    assertEquals(3, procExecutor.getEnvironment().rollbackCount.get());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<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>  @Test<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  public void testChildOnLastStepWithRollbackDoubleExecution() throws Exception {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId, true);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    assertEquals(6, procExecutor.getEnvironment().rollbackCount.get());<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public enum TestSMProcedureState { STEP_1, STEP_2 };<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public static class TestSMProcedure<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      extends StateMachineProcedure&lt;TestProcEnv, TestSMProcedureState&gt; {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    protected Flow executeFromState(TestProcEnv env, TestSMProcedureState state) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      LOG.info("EXEC " + state + " " + this);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      env.execCount.incrementAndGet();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      switch (state) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        case STEP_1:<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          setNextState(TestSMProcedureState.STEP_2);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          break;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        case STEP_2:<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          addChildProcedure(new SimpleChildProcedure());<a name="line.148"></a>
+<span class="sourceLineNo">149</span>          return Flow.NO_MORE_STATE;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      return Flow.HAS_MORE_STATE;<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>    protected void rollbackState(TestProcEnv env, TestSMProcedureState state) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      LOG.info("ROLLBACK " + state + " " + this);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      env.rollbackCount.incrementAndGet();<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>    protected TestSMProcedureState getState(int stateId) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return TestSMProcedureState.values()[stateId];<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>    protected int getStateId(TestSMProcedureState state) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return state.ordinal();<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>    protected TestSMProcedureState getInitialState() {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      return TestSMProcedureState.STEP_1;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public static class SimpleChildProcedure extends NoopProcedure&lt;TestProcEnv&gt; {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    protected Procedure[] execute(TestProcEnv env) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      LOG.info("EXEC " + this);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      env.execCount.incrementAndGet();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      if (env.triggerChildRollback) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        setFailure("test-failure", TEST_FAILURE_EXCEPTION);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return null;<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>    protected void rollback(TestProcEnv env) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      LOG.info("ROLLBACK " + this);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      env.rollbackCount.incrementAndGet();<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>  public class TestProcEnv {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    AtomicInteger execCount = new AtomicInteger(0);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    AtomicInteger rollbackCount = new AtomicInteger(0);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    boolean triggerChildRollback = false;<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html
index a3ba133..9e2d08d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html
@@ -27,180 +27,179 @@
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.procedure2;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.util.ArrayList;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.commons.logging.Log;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.commons.logging.LogFactory;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.FileSystem;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.fs.Path;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.After;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.Before;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import static org.junit.Assert.assertEquals;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import static org.junit.Assert.assertTrue;<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>@Category({MasterTests.class, SmallTests.class})<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class TestStateMachineProcedure {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private static final Log LOG = LogFactory.getLog(TestStateMachineProcedure.class);<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static final Exception TEST_FAILURE_EXCEPTION = new Exception("test failure") {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    @Override<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    public boolean equals(final Object other) {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      if (this == other) return true;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>      if (!(other instanceof Exception)) return false;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      // we are going to serialize the exception in the test,<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      // so the instance comparison will not match<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      return getMessage().equals(((Exception)other).getMessage());<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    }<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>    @Override<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    public int hashCode() {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      return getMessage().hashCode();<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><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private ProcedureStore procStore;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private HBaseCommonTestingUtility htu;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private FileSystem fs;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private Path testDir;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private Path logDir;<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  @Before<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public void setUp() throws IOException {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    htu = new HBaseCommonTestingUtility();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    testDir = htu.getDataTestDir();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>    logDir = new Path(testDir, "proc-logs");<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    procStore = ProcedureTestingUtility.createWalStore(htu.getConfiguration(), fs, logDir);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    procExecutor = new ProcedureExecutor(htu.getConfiguration(), new TestProcEnv(), procStore);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<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>  @After<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public void tearDown() throws IOException {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, false);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    assertTrue("expected executor to be running", procExecutor.isRunning());<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>    procExecutor.stop();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    procStore.stop(false);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    fs.delete(logDir, true);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  @Test<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public void testChildOnLastStep() {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<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>  @Test<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public void testChildOnLastStepDoubleExecution() throws Exception {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<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>  @Test<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public void testChildOnLastStepWithRollback() {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    assertEquals(3, procExecutor.getEnvironment().rollbackCount.get());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  @Test<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public void testChildOnLastStepWithRollbackDoubleExecution() throws Exception {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId, true);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    assertEquals(6, procExecutor.getEnvironment().rollbackCount.get());<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<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 enum TestSMProcedureState { STEP_1, STEP_2 };<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static class TestSMProcedure<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      extends StateMachineProcedure&lt;TestProcEnv, TestSMProcedureState&gt; {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    protected Flow executeFromState(TestProcEnv env, TestSMProcedureState state) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      LOG.info("EXEC " + state + " " + this);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      env.execCount.incrementAndGet();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      switch (state) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        case STEP_1:<a name="line.145"></a>
-<span class="sourceLineNo">146</span>          setNextState(TestSMProcedureState.STEP_2);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>          break;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        case STEP_2:<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          addChildProcedure(new SimpleChildProcedure());<a name="line.149"></a>
-<span class="sourceLineNo">150</span>          return Flow.NO_MORE_STATE;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      return Flow.HAS_MORE_STATE;<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>    protected void rollbackState(TestProcEnv env, TestSMProcedureState state) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      LOG.info("ROLLBACK " + state + " " + this);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      env.rollbackCount.incrementAndGet();<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>    protected TestSMProcedureState getState(int stateId) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return TestSMProcedureState.values()[stateId];<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>    protected int getStateId(TestSMProcedureState state) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      return state.ordinal();<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>    protected TestSMProcedureState getInitialState() {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      return TestSMProcedureState.STEP_1;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public static class SimpleChildProcedure extends NoopProcedure&lt;TestProcEnv&gt; {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    protected Procedure[] execute(TestProcEnv env) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      LOG.info("EXEC " + this);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      env.execCount.incrementAndGet();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      if (env.triggerChildRollback) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        setFailure("test-failure", TEST_FAILURE_EXCEPTION);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      return null;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    protected void rollback(TestProcEnv env) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      LOG.info("ROLLBACK " + this);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      env.rollbackCount.incrementAndGet();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  public class TestProcEnv {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    AtomicInteger execCount = new AtomicInteger(0);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    AtomicInteger rollbackCount = new AtomicInteger(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    boolean triggerChildRollback = false;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>}<a name="line.195"></a>
+<span class="sourceLineNo">022</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.logging.Log;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.logging.LogFactory;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.fs.FileSystem;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.Path;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.junit.After;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.junit.Before;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.junit.Test;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.experimental.categories.Category;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>import static org.junit.Assert.assertEquals;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import static org.junit.Assert.assertTrue;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>@Category({MasterTests.class, SmallTests.class})<a name="line.42"></a>
+<span class="sourceLineNo">043</span>public class TestStateMachineProcedure {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  private static final Log LOG = LogFactory.getLog(TestStateMachineProcedure.class);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private static final Exception TEST_FAILURE_EXCEPTION = new Exception("test failure") {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    public boolean equals(final Object other) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      if (this == other) return true;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      if (!(other instanceof Exception)) return false;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      // we are going to serialize the exception in the test,<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      // so the instance comparison will not match<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      return getMessage().equals(((Exception)other).getMessage());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>    @Override<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    public int hashCode() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      return getMessage().hashCode();<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><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private ProcedureStore procStore;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private HBaseCommonTestingUtility htu;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private FileSystem fs;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private Path testDir;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private Path logDir;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  @Before<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public void setUp() throws IOException {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    htu = new HBaseCommonTestingUtility();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    testDir = htu.getDataTestDir();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>    logDir = new Path(testDir, "proc-logs");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    procStore = ProcedureTestingUtility.createWalStore(htu.getConfiguration(), fs, logDir);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    procExecutor = new ProcedureExecutor(htu.getConfiguration(), new TestProcEnv(), procStore);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  @After<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public void tearDown() throws IOException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, false);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    assertTrue("expected executor to be running", procExecutor.isRunning());<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>    procExecutor.stop();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    procStore.stop(false);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    fs.delete(logDir, true);<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>  @Test<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public void testChildOnLastStep() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @Test<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public void testChildOnLastStepDoubleExecution() throws Exception {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  @Test<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public void testChildOnLastStepWithRollback() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    assertEquals(3, procExecutor.getEnvironment().rollbackCount.get());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<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>  @Test<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  public void testChildOnLastStepWithRollbackDoubleExecution() throws Exception {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId, true);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    assertEquals(6, procExecutor.getEnvironment().rollbackCount.get());<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public enum TestSMProcedureState { STEP_1, STEP_2 };<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public static class TestSMProcedure<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      extends StateMachineProcedure&lt;TestProcEnv, TestSMProcedureState&gt; {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    protected Flow executeFromState(TestProcEnv env, TestSMProcedureState state) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      LOG.info("EXEC " + state + " " + this);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      env.execCount.incrementAndGet();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      switch (state) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        case STEP_1:<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          setNextState(TestSMProcedureState.STEP_2);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          break;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        case STEP_2:<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          addChildProcedure(new SimpleChildProcedure());<a name="line.148"></a>
+<span class="sourceLineNo">149</span>          return Flow.NO_MORE_STATE;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      return Flow.HAS_MORE_STATE;<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>    protected void rollbackState(TestProcEnv env, TestSMProcedureState state) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      LOG.info("ROLLBACK " + state + " " + this);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      env.rollbackCount.incrementAndGet();<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>    protected TestSMProcedureState getState(int stateId) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return TestSMProcedureState.values()[stateId];<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>    protected int getStateId(TestSMProcedureState state) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return state.ordinal();<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>    protected TestSMProcedureState getInitialState() {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      return TestSMProcedureState.STEP_1;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public static class SimpleChildProcedure extends NoopProcedure&lt;TestProcEnv&gt; {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    protected Procedure[] execute(TestProcEnv env) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      LOG.info("EXEC " + this);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      env.execCount.incrementAndGet();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      if (env.triggerChildRollback) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        setFailure("test-failure", TEST_FAILURE_EXCEPTION);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return null;<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>    protected void rollback(TestProcEnv env) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      LOG.info("ROLLBACK " + this);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      env.rollbackCount.incrementAndGet();<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>  public class TestProcEnv {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    AtomicInteger execCount = new AtomicInteger(0);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    AtomicInteger rollbackCount = new AtomicInteger(0);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    boolean triggerChildRollback = false;<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>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html b/devapidocs/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html
index d8d8121..554e99b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html
@@ -177,7 +177,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignm
 <!--   -->
 </a>
 <h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#ASSIGN_TIME_NAME">ASSIGN_TIME_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#BULK_ASSIGN_TIME_NAME">BULK_ASSIGN_TIME_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#METRICS_CONTEXT">METRICS_CONTEXT</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#METRICS_DESCRIPTION">METRICS_DESCRIPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#METRICS_JMX_CONTEXT">METRICS_JMX_CONTEXT</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#METRICS_NAME">METRICS_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_NAME">RIT_COUNT_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssi
 gnmentManagerSource.html#RIT_COUNT_OVER_THRESHOLD_NAME">RIT_COUNT_OVER_THRESHOLD_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_DURATION_NAME">RIT_DURATION_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_OLDEST_AGE_NAME">RIT_OLDEST_AGE_NAME</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#ASSIGN_TIME_NAME">ASSIGN_TIME_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#BULK_ASSIGN_TIME_NAME">BULK_ASSIGN_TIME_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#METRICS_CONTEXT">METRICS_CONTEXT</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#METRICS_DESCRIPTION">METRICS_DESCRIPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#METRICS_JMX_CONTEXT">METRICS_JMX_CONTEXT</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#METRICS_NAME">METRICS_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_DESC">RIT_COUNT_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssi
 gnmentManagerSource.html#RIT_COUNT_NAME">RIT_COUNT_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_OVER_THRESHOLD_DESC">RIT_COUNT_OVER_THRESHOLD_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_OVER_THRESHOLD_NAME">RIT_COUNT_OVER_THRESHOLD_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_DURATION_DESC">RIT_DURATION_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_DURATION_NAME">RIT_DURATION_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_OLDEST_AGE_DESC">RIT_OLDEST_AGE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_OLDEST_AGE_NAME">RIT_OLDEST_AGE_NAME</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.metrics.BaseSource">
@@ -409,7 +409,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignm
 <ul class="blockList">
 <li class="blockList">
 <h4>updateAssignmentTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.58">updateAssignmentTime</a>(long&nbsp;time)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.59">updateAssignmentTime</a>(long&nbsp;time)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#updateAssignmentTime-long-">updateAssignmentTime</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></code></dd>
@@ -422,7 +422,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignm
 <ul class="blockList">
 <li class="blockList">
 <h4>updateBulkAssignTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.63">updateBulkAssignTime</a>(long&nbsp;time)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.64">updateBulkAssignTime</a>(long&nbsp;time)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#updateBulkAssignTime-long-">updateBulkAssignTime</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></code></dd>
@@ -435,7 +435,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignm
 <ul class="blockList">
 <li class="blockList">
 <h4>setRIT</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.67">setRIT</a>(int&nbsp;ritCount)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.68">setRIT</a>(int&nbsp;ritCount)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#setRIT-int-">MetricsAssignmentManagerSource</a></code></span></div>
 <div class="block">Set the number of regions in transition.</div>
 <dl>
@@ -452,7 +452,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignm
 <ul class="blockList">
 <li class="blockList">
 <h4>setRITCountOverThreshold</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.71">setRITCountOverThreshold</a>(int&nbsp;ritCount)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.72">setRITCountOverThreshold</a>(int&nbsp;ritCount)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#setRITCountOverThreshold-int-">MetricsAssignmentManagerSource</a></code></span></div>
 <div class="block">Set the count of the number of regions that have been in transition over the threshold time.</div>
 <dl>
@@ -469,7 +469,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignm
 <ul class="blockList">
 <li class="blockList">
 <h4>setRITOldestAge</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.75">setRITOldestAge</a>(long&nbsp;ritCount)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.76">setRITOldestAge</a>(long&nbsp;ritCount)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#setRITOldestAge-long-">MetricsAssignmentManagerSource</a></code></span></div>
 <div class="block">Set the oldest region in transition.</div>
 <dl>
@@ -486,7 +486,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updateRitDuration</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.80">updateRitDuration</a>(long&nbsp;duration)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#line.81">updateRitDuration</a>(long&nbsp;duration)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#updateRitDuration-long-">updateRitDuration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/locking/LockProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/locking/LockProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/locking/LockProcedure.html
index f3242e0..509fb6f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/locking/LockProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/locking/LockProcedure.html
@@ -487,7 +487,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doR
 eleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getP
 rocId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../.
 ./org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-ja
 va.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a hre
 f="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a hre
 f="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doR
 eleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getP
 rocId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a 
 href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../..
 /../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.S
 tring-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>
 , <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTim
 eout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironm
 ent-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
index 4cd39cc..af48a59 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
@@ -264,7 +264,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
index b1b0629..f06f7b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
@@ -298,7 +298,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.html
index 952ca80..2a08fb8 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.html
@@ -408,7 +408,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">g
 etProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/had
 oop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoo
 p/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#
 setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">was
 Executed</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">g
 etProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/ap
 ache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/
 apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hado
 op/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html
index a1495ff..0c11099 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.StoppableThread.html
@@ -839,1019 +839,1030 @@
 <span class="sourceLineNo">831</span>  private long pushProcedure(final Procedure proc) {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>    final long currentProcId = proc.getProcId();<a name="line.832"></a>
 <span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the rollback stack for the procedure<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    RootProcedureState stack = new RootProcedureState();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    rollbackStack.put(currentProcId, stack);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // Submit the new subprocedures<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    assert !procedures.containsKey(currentProcId);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    procedures.put(currentProcId, proc);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    sendProcedureAddedNotification(currentProcId);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    scheduler.addBack(proc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return proc.getProcId();<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Send an abort notification the specified procedure.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * @param procId the procedure to abort<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  public boolean abort(final long procId) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    return abort(procId, true);<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>   * Send an abort notification the specified procedure.<a name="line.857"></a>
-<span class="sourceLineNo">858</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>   * @param procId the procedure to abort<a name="line.859"></a>
-<span class="sourceLineNo">860</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    final Procedure proc = procedures.get(procId);<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (proc != null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        return false;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return proc.abort(getEnvironment());<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    return false;<a name="line.871"></a>
-<span class="sourceLineNo">872</span>  }<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>  //  Executor query helpers<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  // ==========================================================================<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public Procedure getProcedure(final long procId) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    return procedures.get(procId);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  }<a name="line.879"></a>
-<span class="sourceLineNo">880</span><a name="line.880"></a>
-<span class="sourceLineNo">881</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    final Procedure proc = getProcedure(procId);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (clazz.isInstance(proc)) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      return (T)proc;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    return null;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  public ProcedureInfo getResult(final long procId) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    return completed.get(procId);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>  }<a name="line.891"></a>
-<span class="sourceLineNo">892</span><a name="line.892"></a>
-<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * Return true if the procedure is finished.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * Use getResult() to check the state or get the result data.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @param procId the ID of the procedure to check<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  public boolean isFinished(final long procId) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    return !procedures.containsKey(procId);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>  }<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * Return true if the procedure is started.<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   * @param procId the ID of the procedure to check<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   */<a name="line.908"></a>
-<span class="sourceLineNo">909</span>  public boolean isStarted(final long procId) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    final Procedure proc = procedures.get(procId);<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (proc == null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      return completed.get(procId) != null;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return proc.wasExecuted();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param procId the ID of the procedure to remove<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   */<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public void removeResult(final long procId) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    final ProcedureInfo result = completed.get(procId);<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    if (result == null) {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      if (LOG.isDebugEnabled()) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      }<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      return;<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>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>  }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    ProcedureInfo result = completed.get(procId);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    Procedure proc = null;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    if (result == null) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      proc = procedures.get(procId);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      if (proc == null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        result = completed.get(procId);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    return new Pair(result, proc);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Check if the user is this procedure's owner<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   * @param procId the target procedure<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param user the user<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   * @return true if the user is the owner of the procedure,<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   *   false otherwise or the owner is unknown.<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   */<a name="line.953"></a>
-<span class="sourceLineNo">954</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    if (user == null) return false;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    final Procedure proc = procedures.get(procId);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    if (proc != null) {<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      return proc.getOwner().equals(user.getShortName());<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>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    if (procInfo == null) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>      // At this time, we cannot check the owner of the procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return false;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  }<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>   * List procedures.<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   * @return the procedures in a list<a name="line.973"></a>
-<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      // it could complete after we walk through procedures list and insert into<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      procedureLists.add(e.getValue());<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    }<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return procedureLists;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  // ==========================================================================<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  //  Listeners helpers<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  // ==========================================================================<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    this.listeners.add(listener);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  }<a name="line.995"></a>
-<span class="sourceLineNo">996</span><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    return this.listeners.remove(listener);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>  }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    if (!this.listeners.isEmpty()) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          listener.procedureLoaded(procId);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>        } catch (Throwable e) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<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>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    if (!this.listeners.isEmpty()) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>          listener.procedureAdded(procId);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        } catch (Throwable e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        }<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>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    if (!this.listeners.isEmpty()) {<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>        try {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          listener.procedureFinished(procId);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>        } catch (Throwable e) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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><a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  // ==========================================================================<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  //  Procedure IDs helpers<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  // ==========================================================================<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  private long nextProcId() {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    long procId = lastProcId.incrementAndGet();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    if (procId &lt; 0) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>        procId = lastProcId.get();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>        if (procId &gt;= 0)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>          break;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      while (procedures.containsKey(procId)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        procId = lastProcId.incrementAndGet();<a name="line.1049"></a>
+<span class="sourceLineNo">834</span>    // Update metrics on start of a procedure<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>    // Create the rollback stack for the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    RootProcedureState stack = new RootProcedureState();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    rollbackStack.put(currentProcId, stack);<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // Submit the new subprocedures<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    assert !procedures.containsKey(currentProcId);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    procedures.put(currentProcId, proc);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    sendProcedureAddedNotification(currentProcId);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    scheduler.addBack(proc);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    return proc.getProcId();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Send an abort notification the specified procedure.<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @param procId the procedure to abort<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public boolean abort(final long procId) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    return abort(procId, true);<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>  /**<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   * Send an abort notification the specified procedure.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.861"></a>
+<span class="sourceLineNo">862</span>   * @param procId the procedure to abort<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    final Procedure proc = procedures.get(procId);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    if (proc != null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return false;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>      return proc.abort(getEnvironment());<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    return false;<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>  //  Executor query helpers<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  // ==========================================================================<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  public Procedure getProcedure(final long procId) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    return procedures.get(procId);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    final Procedure proc = getProcedure(procId);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (clazz.isInstance(proc)) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      return (T)proc;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    return null;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>  }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>  public ProcedureInfo getResult(final long procId) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    return completed.get(procId);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>  }<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>   * Return true if the procedure is finished.<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Use getResult() to check the state or get the result data.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @param procId the ID of the procedure to check<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>   */<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public boolean isFinished(final long procId) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    return !procedures.containsKey(procId);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * Return true if the procedure is started.<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * @param procId the ID of the procedure to check<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  public boolean isStarted(final long procId) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    final Procedure proc = procedures.get(procId);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    if (proc == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      return completed.get(procId) != null;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return proc.wasExecuted();<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param procId the ID of the procedure to remove<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  public void removeResult(final long procId) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>    final ProcedureInfo result = completed.get(procId);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    if (result == null) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      if (LOG.isDebugEnabled()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      return;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<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>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    ProcedureInfo result = completed.get(procId);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    Procedure proc = null;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    if (result == null) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      proc = procedures.get(procId);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      if (proc == null) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        result = completed.get(procId);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    return new Pair(result, proc);<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>   * Check if the user is this procedure's owner<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   * @param procId the target procedure<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param user the user<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return true if the user is the owner of the procedure,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   *   false otherwise or the owner is unknown.<a name="line.955"></a>
+<span class="sourceLineNo">956</span>   */<a name="line.956"></a>
+<span class="sourceLineNo">957</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    if (user == null) return false;<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>    final Procedure proc = procedures.get(procId);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    if (proc != null) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      return proc.getOwner().equals(user.getShortName());<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    if (procInfo == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      // At this time, we cannot check the owner of the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      return false;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<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>  /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>   * List procedures.<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * @return the procedures in a list<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      // it could complete after we walk through procedures list and insert into<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      procedureLists.add(e.getValue());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    return procedureLists;<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>  //  Listeners helpers<a name="line.994"></a>
+<span class="sourceLineNo">995</span>  // ==========================================================================<a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    this.listeners.add(listener);<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>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    return this.listeners.remove(listener);<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>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    if (!this.listeners.isEmpty()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          listener.procedureLoaded(procId);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        } catch (Throwable e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    if (!this.listeners.isEmpty()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          listener.procedureAdded(procId);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        } catch (Throwable e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    if (!this.listeners.isEmpty()) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        try {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          listener.procedureFinished(procId);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        } catch (Throwable e) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  // ==========================================================================<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>  //  Procedure IDs helpers<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  // ==========================================================================<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>  private long nextProcId() {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    long procId = lastProcId.incrementAndGet();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    if (procId &lt; 0) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        procId = lastProcId.get();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        if (procId &gt;= 0)<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>          break;<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return procId;<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>  @VisibleForTesting<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  protected long getLastProcId() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return lastProcId.get();<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>  @VisibleForTesting<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span><a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>  // ==========================================================================<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  //  Executions<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  // ==========================================================================<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  private void executeProcedure(final Procedure proc) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    if (rootProcId == null) {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      executeRollback(proc);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      return;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    if (procStack == null) return;<a name="line.1082"></a>
+<span class="sourceLineNo">1051</span>      while (procedures.containsKey(procId)) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        procId = lastProcId.incrementAndGet();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    return procId;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>  @VisibleForTesting<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>  protected long getLastProcId() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    return lastProcId.get();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>  }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  @VisibleForTesting<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>  }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  // ==========================================================================<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>  //  Executions<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  // ==========================================================================<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>  private void executeProcedure(final Procedure proc) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    if (rootProcId == null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      executeRollback(proc);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>      return;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    }<a name="line.1082"></a>
 <span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    do {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      // Try to acquire the execution<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (!procStack.acquire(proc)) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        if (procStack.setRollback()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>            case LOCK_ACQUIRED:<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>                break;<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>            case LOCK_YIELD_WAIT:<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>              procStack.unsetRollback();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>              scheduler.yield(proc);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>              break;<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>            case LOCK_EVENT_WAIT:<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>              procStack.unsetRollback();<a name="line.1097"></a>
+<span class="sourceLineNo">1084</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    if (procStack == null) return;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    do {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>      // Try to acquire the execution<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>      if (!procStack.acquire(proc)) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        if (procStack.setRollback()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>            case LOCK_ACQUIRED:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>            case LOCK_YIELD_WAIT:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>              procStack.unsetRollback();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>              scheduler.yield(proc);<a name="line.1097"></a>
 <span class="sourceLineNo">1098</span>              break;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>            default:<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>              throw new UnsupportedOperationException();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>          }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        } else {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>          // if we can't rollback means that some child is still running.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>          // the rollback will be executed after all the children are done.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          if (!proc.wasExecuted()) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>            switch (executeRollback(proc)) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>              case LOCK_ACQUIRED:<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>                break;<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>              case LOCK_YIELD_WAIT:<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>                scheduler.yield(proc);<a name="line.1111"></a>
+<span class="sourceLineNo">1099</span>            case LOCK_EVENT_WAIT:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>              procStack.unsetRollback();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>              break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>            default:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>              throw new UnsupportedOperationException();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>          // if we can't rollback means that some child is still running.<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>          // the rollback will be executed after all the children are done.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>          if (!proc.wasExecuted()) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>            switch (executeRollback(proc)) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>              case LOCK_ACQUIRED:<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>                break;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>              case LOCK_EVENT_WAIT:<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>                break;<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>              default:<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>                throw new UnsupportedOperationException();<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>        break;<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>      }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span><a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      // Execute the procedure<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      switch (acquireLock(proc)) {<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>        case LOCK_ACQUIRED:<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>          execProcedure(procStack, proc);<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>          releaseLock(proc, false);<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>          break;<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>        case LOCK_YIELD_WAIT:<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          scheduler.yield(proc);<a name="line.1131"></a>
+<span class="sourceLineNo">1113</span>              case LOCK_YIELD_WAIT:<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                scheduler.yield(proc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>              case LOCK_EVENT_WAIT:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                break;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>              default:<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                throw new UnsupportedOperationException();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>            }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        break;<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>      // Execute the procedure<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      switch (acquireLock(proc)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        case LOCK_ACQUIRED:<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>          execProcedure(procStack, proc);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          releaseLock(proc, false);<a name="line.1131"></a>
 <span class="sourceLineNo">1132</span>          break;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        case LOCK_EVENT_WAIT:<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>          // someone will wake us up when the lock is available<a name="line.1134"></a>
+<span class="sourceLineNo">1133</span>        case LOCK_YIELD_WAIT:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          scheduler.yield(proc);<a name="line.1134"></a>
 <span class="sourceLineNo">1135</span>          break;<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        default:<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>          throw new UnsupportedOperationException();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>      procStack.release(proc);<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      // useful to test the procedure recovery.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (testing != null &amp;&amp; !isRunning()) {<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>      if (proc.isSuccess()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>        if (LOG.isDebugEnabled()) {<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        // Finalize the procedure state<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        if (proc.getProcId() == rootProcId) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>          procedureFinished(proc);<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        } else {<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          execCompletionCleanup(proc);<a name="line.1155"></a>
+<span class="sourceLineNo">1136</span>        case LOCK_EVENT_WAIT:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          // someone will wake us up when the lock is available<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>          break;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        default:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>          throw new UnsupportedOperationException();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      procStack.release(proc);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // useful to test the procedure recovery.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      if (testing != null &amp;&amp; !isRunning()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        break;<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>      if (proc.isSuccess()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        // update metrics on finishing the procedure<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        if (LOG.isDebugEnabled()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1155"></a>
 <span class="sourceLineNo">1156</span>        }<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>        break;<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      }<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    } while (procStack.isFailed());<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    final TEnvironment env = getEnvironment();<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      return LockState.LOCK_ACQUIRED;<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    return proc.doAcquireLock(env);<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    final TEnvironment env = getEnvironment();<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    // for how the framework works, we know that we will always have the lock<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (force || !proc.holdLock(env)) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      proc.doReleaseLock(env);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * Execute the rollback of the full procedure stack.<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * finished to user, and the result will be the fatal exception.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   */<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    if (exception == null) {<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>      exception = procStack.getException();<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      rootProc.setFailure(exception);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      store.update(rootProc);<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span><a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span><a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>    int stackTail = subprocStack.size();<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    boolean reuseLock = false;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    while (stackTail --&gt; 0) {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span><a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      LockState lockState;<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>        // queue waiting for the lock availability<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>        return lockState;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      }<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span><a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      lockState = executeRollback(proc);<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // If the next procedure is the same to this one<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      // we can avoid to lock/unlock each step<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      if (!reuseLock) {<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>        releaseLock(proc, false);<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // useful to test the procedure recovery.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      if (abortRollback) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>        return lockState;<a name="line.1226"></a>
+<span class="sourceLineNo">1157</span>        // Finalize the procedure state<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        if (proc.getProcId() == rootProcId) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>          procedureFinished(proc);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>          execCompletionCleanup(proc);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>      }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>    } while (procStack.isFailed());<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    final TEnvironment env = getEnvironment();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      return LockState.LOCK_ACQUIRED;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    return proc.doAcquireLock(env);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    final TEnvironment env = getEnvironment();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    // for how the framework works, we know that we will always have the lock<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    if (force || !proc.holdLock(env)) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      proc.doReleaseLock(env);<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><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Execute the rollback of the full procedure stack.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * finished to user, and the result will be the fatal exception.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (exception == null) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      exception = procStack.getException();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      rootProc.setFailure(exception);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      store.update(rootProc);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>    int stackTail = subprocStack.size();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    boolean reuseLock = false;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    while (stackTail --&gt; 0) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      LockState lockState;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        // queue waiting for the lock availability<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        return lockState;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      lockState = executeRollback(proc);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      // If the next procedure is the same to this one<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>      // we can avoid to lock/unlock each step<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      if (!reuseLock) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        releaseLock(proc, false);<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>      subprocStack.remove(stackTail);<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      // if the procedure is kind enough to pass the slot to someone else, yield<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      if (proc.isYieldAfterExecutionStep(getEnvironment())) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>        return LockState.LOCK_YIELD_WAIT;<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      }<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span><a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      if (proc != rootProc) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        execCompletionCleanup(proc);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span><a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // Finalize the procedure state<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    LOG.info("Rolled back " + rootProc +<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>             " exec-time=" + StringUtils.humanTimeDiff(rootProc.elapsedTime()));<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    procedureFinished(rootProc);<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    return LockState.LOCK_ACQUIRED;<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span><a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  /**<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * Execute the rollback of the procedure step.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   * It updates the store with the new state (stack index)<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>   * or will remove completly the procedure in case it is a child.<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  private LockState executeRollback(final Procedure proc) {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>    try {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      proc.doRollback(getEnvironment());<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    } catch (IOException e) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      if (LOG.isDebugEnabled()) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        LOG.debug("Roll back attempt failed for " + proc, e);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      }<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    } catch (InterruptedException e) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      handleInterruptedException(proc, e);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    } catch (Throwable e) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      // Catch NullPointerExceptions or similar errors...<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>      LOG.fatal("CODE-BUG: Uncatched runtime exception for procedure: " + proc, e);<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    // allows to kill the executor before something is stored to the wal.<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>    // useful to test the procedure recovery.<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    if (testing != null &amp;&amp; testing.shouldKillBeforeStoreUpdate()) {<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      LOG.debug("TESTING: Kill before store update");<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      stop();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    if (proc.removeStackIndex()) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      proc.setState(ProcedureState.ROLLEDBACK);<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>      if (proc.hasParent()) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>        store.delete(proc.getProcId());<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        procedures.remove(proc.getProcId());<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      } else {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        final long[] childProcIds = rollbackStack.get(proc.getProcId()).getSubprocedureIds();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>        if (childProcIds != null) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>          store.delete(proc, childProcIds);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        } else {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          store.update(proc);<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>    } else {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      store.update(proc);<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return LockState.LOCK_ACQUIRED;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  /**<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   * Executes the specified procedure<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   *  - calls the doExecute() of the procedure<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>   *  - if the procedure execution didn't fail (e.g. invalid user input)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   *     - ...and returned subprocedures<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>   *        - the subprocedures are initialized.<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   *        - the subprocedures are added to the store<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   *        - the subprocedures are added to the runnable queue<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *        - the procedure is now in a WAITING state, waiting for the subprocedures to complete<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   *     - ...if there are no subprocedure<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>   *        - the procedure completed successfully<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>   *        - if there is a parent (WAITING)<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>   *            - the parent state will be set to RUNNABLE<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   *  - in case of failure<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   *    - the store is updated with the new state<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   *    - the executor (caller of this method) will start the rollback of the procedure<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   */<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  private void execProcedure(final RootProcedureState procStack, final Procedure procedure) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>    Preconditions.checkArgument(procedure.getState() == ProcedureState.RUNNABLE);<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Execute the procedure<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    boolean suspended = false;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    boolean reExecute = false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    Procedure[] subprocs = null;<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>    do {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      reExecute = false;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      try {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        subprocs = procedure.doExecute(getEnvironment());<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        if (subprocs != null &amp;&amp; subprocs.length == 0) {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          subprocs = null;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      } catch (ProcedureSuspendedException e) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        suspended = true;<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      } catch (ProcedureYieldException e) {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        if (LOG.isTraceEnabled()) {<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>          LOG.trace("Yield " + procedure + ": " + e.getMessage());<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        scheduler.yield(procedure);<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        return;<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>      } catch (InterruptedException e) {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        handleInterruptedException(procedure, e);<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        scheduler.yield(procedure);<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        return;<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      } catch (Throwable e) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>        // Catch NullPointerExceptions or similar errors...<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        String msg = "CODE-BUG: Uncaught runtime exception: " + procedure;<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        LOG.error(msg, e);<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        procedure.setFailure(new RemoteProcedureException(msg, e));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span><a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>      if (!procedure.isFailed()) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        if (subprocs != null) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>          if (subprocs.length == 1 &amp;&amp; subprocs[0] == procedure) {<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>            // quick-shortcut for a state machine like procedure<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>            subprocs = null;<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            reExecute = true;<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          } else {<a name="line.1353"></a>
-<span class="sourceLineN

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
index a1495ff..0c11099 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
@@ -839,1019 +839,1030 @@
 <span class="sourceLineNo">831</span>  private long pushProcedure(final Procedure proc) {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>    final long currentProcId = proc.getProcId();<a name="line.832"></a>
 <span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the rollback stack for the procedure<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    RootProcedureState stack = new RootProcedureState();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    rollbackStack.put(currentProcId, stack);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // Submit the new subprocedures<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    assert !procedures.containsKey(currentProcId);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    procedures.put(currentProcId, proc);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    sendProcedureAddedNotification(currentProcId);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    scheduler.addBack(proc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return proc.getProcId();<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Send an abort notification the specified procedure.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * @param procId the procedure to abort<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  public boolean abort(final long procId) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    return abort(procId, true);<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>   * Send an abort notification the specified procedure.<a name="line.857"></a>
-<span class="sourceLineNo">858</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>   * @param procId the procedure to abort<a name="line.859"></a>
-<span class="sourceLineNo">860</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    final Procedure proc = procedures.get(procId);<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (proc != null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        return false;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return proc.abort(getEnvironment());<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    return false;<a name="line.871"></a>
-<span class="sourceLineNo">872</span>  }<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>  //  Executor query helpers<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  // ==========================================================================<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public Procedure getProcedure(final long procId) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    return procedures.get(procId);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  }<a name="line.879"></a>
-<span class="sourceLineNo">880</span><a name="line.880"></a>
-<span class="sourceLineNo">881</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    final Procedure proc = getProcedure(procId);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (clazz.isInstance(proc)) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      return (T)proc;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    return null;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  public ProcedureInfo getResult(final long procId) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    return completed.get(procId);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>  }<a name="line.891"></a>
-<span class="sourceLineNo">892</span><a name="line.892"></a>
-<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * Return true if the procedure is finished.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * Use getResult() to check the state or get the result data.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @param procId the ID of the procedure to check<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  public boolean isFinished(final long procId) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    return !procedures.containsKey(procId);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>  }<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * Return true if the procedure is started.<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   * @param procId the ID of the procedure to check<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   */<a name="line.908"></a>
-<span class="sourceLineNo">909</span>  public boolean isStarted(final long procId) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    final Procedure proc = procedures.get(procId);<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (proc == null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      return completed.get(procId) != null;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return proc.wasExecuted();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param procId the ID of the procedure to remove<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   */<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public void removeResult(final long procId) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    final ProcedureInfo result = completed.get(procId);<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    if (result == null) {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      if (LOG.isDebugEnabled()) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      }<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      return;<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>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>  }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    ProcedureInfo result = completed.get(procId);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    Procedure proc = null;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    if (result == null) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      proc = procedures.get(procId);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      if (proc == null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        result = completed.get(procId);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    return new Pair(result, proc);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Check if the user is this procedure's owner<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   * @param procId the target procedure<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param user the user<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   * @return true if the user is the owner of the procedure,<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   *   false otherwise or the owner is unknown.<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   */<a name="line.953"></a>
-<span class="sourceLineNo">954</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    if (user == null) return false;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    final Procedure proc = procedures.get(procId);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    if (proc != null) {<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      return proc.getOwner().equals(user.getShortName());<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>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    if (procInfo == null) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>      // At this time, we cannot check the owner of the procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return false;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  }<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>   * List procedures.<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   * @return the procedures in a list<a name="line.973"></a>
-<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      // it could complete after we walk through procedures list and insert into<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      procedureLists.add(e.getValue());<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    }<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return procedureLists;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  // ==========================================================================<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  //  Listeners helpers<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  // ==========================================================================<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    this.listeners.add(listener);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  }<a name="line.995"></a>
-<span class="sourceLineNo">996</span><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    return this.listeners.remove(listener);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>  }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    if (!this.listeners.isEmpty()) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          listener.procedureLoaded(procId);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>        } catch (Throwable e) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<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>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    if (!this.listeners.isEmpty()) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>          listener.procedureAdded(procId);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        } catch (Throwable e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        }<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>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    if (!this.listeners.isEmpty()) {<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>        try {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          listener.procedureFinished(procId);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>        } catch (Throwable e) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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><a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  // ==========================================================================<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  //  Procedure IDs helpers<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  // ==========================================================================<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  private long nextProcId() {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    long procId = lastProcId.incrementAndGet();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    if (procId &lt; 0) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>        procId = lastProcId.get();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>        if (procId &gt;= 0)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>          break;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      while (procedures.containsKey(procId)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        procId = lastProcId.incrementAndGet();<a name="line.1049"></a>
+<span class="sourceLineNo">834</span>    // Update metrics on start of a procedure<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>    // Create the rollback stack for the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    RootProcedureState stack = new RootProcedureState();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    rollbackStack.put(currentProcId, stack);<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // Submit the new subprocedures<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    assert !procedures.containsKey(currentProcId);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    procedures.put(currentProcId, proc);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    sendProcedureAddedNotification(currentProcId);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    scheduler.addBack(proc);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    return proc.getProcId();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Send an abort notification the specified procedure.<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @param procId the procedure to abort<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public boolean abort(final long procId) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    return abort(procId, true);<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>  /**<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   * Send an abort notification the specified procedure.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.861"></a>
+<span class="sourceLineNo">862</span>   * @param procId the procedure to abort<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    final Procedure proc = procedures.get(procId);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    if (proc != null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return false;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>      return proc.abort(getEnvironment());<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    return false;<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>  //  Executor query helpers<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  // ==========================================================================<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  public Procedure getProcedure(final long procId) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    return procedures.get(procId);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    final Procedure proc = getProcedure(procId);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (clazz.isInstance(proc)) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      return (T)proc;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    return null;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>  }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>  public ProcedureInfo getResult(final long procId) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    return completed.get(procId);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>  }<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>   * Return true if the procedure is finished.<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Use getResult() to check the state or get the result data.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @param procId the ID of the procedure to check<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>   */<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public boolean isFinished(final long procId) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    return !procedures.containsKey(procId);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * Return true if the procedure is started.<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * @param procId the ID of the procedure to check<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  public boolean isStarted(final long procId) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    final Procedure proc = procedures.get(procId);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    if (proc == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      return completed.get(procId) != null;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return proc.wasExecuted();<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param procId the ID of the procedure to remove<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  public void removeResult(final long procId) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>    final ProcedureInfo result = completed.get(procId);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    if (result == null) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      if (LOG.isDebugEnabled()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      return;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<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>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    ProcedureInfo result = completed.get(procId);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    Procedure proc = null;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    if (result == null) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      proc = procedures.get(procId);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      if (proc == null) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        result = completed.get(procId);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    return new Pair(result, proc);<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>   * Check if the user is this procedure's owner<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   * @param procId the target procedure<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param user the user<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return true if the user is the owner of the procedure,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   *   false otherwise or the owner is unknown.<a name="line.955"></a>
+<span class="sourceLineNo">956</span>   */<a name="line.956"></a>
+<span class="sourceLineNo">957</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    if (user == null) return false;<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>    final Procedure proc = procedures.get(procId);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    if (proc != null) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      return proc.getOwner().equals(user.getShortName());<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    if (procInfo == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      // At this time, we cannot check the owner of the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      return false;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<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>  /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>   * List procedures.<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * @return the procedures in a list<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      // it could complete after we walk through procedures list and insert into<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      procedureLists.add(e.getValue());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    return procedureLists;<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>  //  Listeners helpers<a name="line.994"></a>
+<span class="sourceLineNo">995</span>  // ==========================================================================<a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    this.listeners.add(listener);<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>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    return this.listeners.remove(listener);<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>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    if (!this.listeners.isEmpty()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          listener.procedureLoaded(procId);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        } catch (Throwable e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    if (!this.listeners.isEmpty()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          listener.procedureAdded(procId);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        } catch (Throwable e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    if (!this.listeners.isEmpty()) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        try {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          listener.procedureFinished(procId);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        } catch (Throwable e) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  // ==========================================================================<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>  //  Procedure IDs helpers<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  // ==========================================================================<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>  private long nextProcId() {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    long procId = lastProcId.incrementAndGet();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    if (procId &lt; 0) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        procId = lastProcId.get();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        if (procId &gt;= 0)<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>          break;<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return procId;<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>  @VisibleForTesting<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  protected long getLastProcId() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return lastProcId.get();<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>  @VisibleForTesting<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span><a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>  // ==========================================================================<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  //  Executions<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  // ==========================================================================<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  private void executeProcedure(final Procedure proc) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    if (rootProcId == null) {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      executeRollback(proc);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      return;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    if (procStack == null) return;<a name="line.1082"></a>
+<span class="sourceLineNo">1051</span>      while (procedures.containsKey(procId)) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        procId = lastProcId.incrementAndGet();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    return procId;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>  @VisibleForTesting<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>  protected long getLastProcId() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    return lastProcId.get();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>  }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  @VisibleForTesting<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>  }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  // ==========================================================================<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>  //  Executions<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  // ==========================================================================<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>  private void executeProcedure(final Procedure proc) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    if (rootProcId == null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      executeRollback(proc);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>      return;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    }<a name="line.1082"></a>
 <span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    do {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      // Try to acquire the execution<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (!procStack.acquire(proc)) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        if (procStack.setRollback()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>            case LOCK_ACQUIRED:<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>                break;<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>            case LOCK_YIELD_WAIT:<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>              procStack.unsetRollback();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>              scheduler.yield(proc);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>              break;<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>            case LOCK_EVENT_WAIT:<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>              procStack.unsetRollback();<a name="line.1097"></a>
+<span class="sourceLineNo">1084</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    if (procStack == null) return;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    do {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>      // Try to acquire the execution<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>      if (!procStack.acquire(proc)) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        if (procStack.setRollback()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>            case LOCK_ACQUIRED:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>            case LOCK_YIELD_WAIT:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>              procStack.unsetRollback();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>              scheduler.yield(proc);<a name="line.1097"></a>
 <span class="sourceLineNo">1098</span>              break;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>            default:<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>              throw new UnsupportedOperationException();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>          }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        } else {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>          // if we can't rollback means that some child is still running.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>          // the rollback will be executed after all the children are done.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          if (!proc.wasExecuted()) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>            switch (executeRollback(proc)) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>              case LOCK_ACQUIRED:<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>                break;<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>              case LOCK_YIELD_WAIT:<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>                scheduler.yield(proc);<a name="line.1111"></a>
+<span class="sourceLineNo">1099</span>            case LOCK_EVENT_WAIT:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>              procStack.unsetRollback();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>              break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>            default:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>              throw new UnsupportedOperationException();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>          // if we can't rollback means that some child is still running.<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>          // the rollback will be executed after all the children are done.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>          if (!proc.wasExecuted()) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>            switch (executeRollback(proc)) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>              case LOCK_ACQUIRED:<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>                break;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>              case LOCK_EVENT_WAIT:<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>                break;<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>              default:<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>                throw new UnsupportedOperationException();<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>        break;<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>      }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span><a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      // Execute the procedure<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      switch (acquireLock(proc)) {<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>        case LOCK_ACQUIRED:<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>          execProcedure(procStack, proc);<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>          releaseLock(proc, false);<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>          break;<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>        case LOCK_YIELD_WAIT:<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          scheduler.yield(proc);<a name="line.1131"></a>
+<span class="sourceLineNo">1113</span>              case LOCK_YIELD_WAIT:<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                scheduler.yield(proc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>              case LOCK_EVENT_WAIT:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                break;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>              default:<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                throw new UnsupportedOperationException();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>            }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        break;<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>      // Execute the procedure<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      switch (acquireLock(proc)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        case LOCK_ACQUIRED:<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>          execProcedure(procStack, proc);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          releaseLock(proc, false);<a name="line.1131"></a>
 <span class="sourceLineNo">1132</span>          break;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        case LOCK_EVENT_WAIT:<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>          // someone will wake us up when the lock is available<a name="line.1134"></a>
+<span class="sourceLineNo">1133</span>        case LOCK_YIELD_WAIT:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          scheduler.yield(proc);<a name="line.1134"></a>
 <span class="sourceLineNo">1135</span>          break;<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        default:<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>          throw new UnsupportedOperationException();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>      procStack.release(proc);<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      // useful to test the procedure recovery.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (testing != null &amp;&amp; !isRunning()) {<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>      if (proc.isSuccess()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>        if (LOG.isDebugEnabled()) {<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        // Finalize the procedure state<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        if (proc.getProcId() == rootProcId) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>          procedureFinished(proc);<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        } else {<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          execCompletionCleanup(proc);<a name="line.1155"></a>
+<span class="sourceLineNo">1136</span>        case LOCK_EVENT_WAIT:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          // someone will wake us up when the lock is available<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>          break;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        default:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>          throw new UnsupportedOperationException();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      procStack.release(proc);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // useful to test the procedure recovery.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      if (testing != null &amp;&amp; !isRunning()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        break;<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>      if (proc.isSuccess()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        // update metrics on finishing the procedure<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        if (LOG.isDebugEnabled()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1155"></a>
 <span class="sourceLineNo">1156</span>        }<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>        break;<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      }<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    } while (procStack.isFailed());<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    final TEnvironment env = getEnvironment();<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      return LockState.LOCK_ACQUIRED;<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    return proc.doAcquireLock(env);<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    final TEnvironment env = getEnvironment();<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    // for how the framework works, we know that we will always have the lock<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (force || !proc.holdLock(env)) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      proc.doReleaseLock(env);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * Execute the rollback of the full procedure stack.<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * finished to user, and the result will be the fatal exception.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   */<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    if (exception == null) {<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>      exception = procStack.getException();<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      rootProc.setFailure(exception);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      store.update(rootProc);<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span><a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span><a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>    int stackTail = subprocStack.size();<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    boolean reuseLock = false;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    while (stackTail --&gt; 0) {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span><a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      LockState lockState;<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>        // queue waiting for the lock availability<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>        return lockState;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      }<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span><a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      lockState = executeRollback(proc);<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // If the next procedure is the same to this one<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      // we can avoid to lock/unlock each step<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      if (!reuseLock) {<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>        releaseLock(proc, false);<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // useful to test the procedure recovery.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      if (abortRollback) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>        return lockState;<a name="line.1226"></a>
+<span class="sourceLineNo">1157</span>        // Finalize the procedure state<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        if (proc.getProcId() == rootProcId) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>          procedureFinished(proc);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>          execCompletionCleanup(proc);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>      }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>    } while (procStack.isFailed());<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    final TEnvironment env = getEnvironment();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      return LockState.LOCK_ACQUIRED;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    return proc.doAcquireLock(env);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    final TEnvironment env = getEnvironment();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    // for how the framework works, we know that we will always have the lock<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    if (force || !proc.holdLock(env)) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      proc.doReleaseLock(env);<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><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Execute the rollback of the full procedure stack.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * finished to user, and the result will be the fatal exception.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (exception == null) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      exception = procStack.getException();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      rootProc.setFailure(exception);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      store.update(rootProc);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>    int stackTail = subprocStack.size();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    boolean reuseLock = false;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    while (stackTail --&gt; 0) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      LockState lockState;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        // queue waiting for the lock availability<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        return lockState;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      lockState = executeRollback(proc);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      // If the next procedure is the same to this one<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>      // we can avoid to lock/unlock each step<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      if (!reuseLock) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        releaseLock(proc, false);<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>      subprocStack.remove(stackTail);<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      // if the procedure is kind enough to pass the slot to someone else, yield<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      if (proc.isYieldAfterExecutionStep(getEnvironment())) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>        return LockState.LOCK_YIELD_WAIT;<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      }<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span><a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      if (proc != rootProc) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        execCompletionCleanup(proc);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span><a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // Finalize the procedure state<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    LOG.info("Rolled back " + rootProc +<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>             " exec-time=" + StringUtils.humanTimeDiff(rootProc.elapsedTime()));<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    procedureFinished(rootProc);<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    return LockState.LOCK_ACQUIRED;<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span><a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  /**<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * Execute the rollback of the procedure step.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   * It updates the store with the new state (stack index)<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>   * or will remove completly the procedure in case it is a child.<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  private LockState executeRollback(final Procedure proc) {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>    try {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      proc.doRollback(getEnvironment());<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    } catch (IOException e) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      if (LOG.isDebugEnabled()) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        LOG.debug("Roll back attempt failed for " + proc, e);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      }<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    } catch (InterruptedException e) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      handleInterruptedException(proc, e);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    } catch (Throwable e) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      // Catch NullPointerExceptions or similar errors...<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>      LOG.fatal("CODE-BUG: Uncatched runtime exception for procedure: " + proc, e);<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    // allows to kill the executor before something is stored to the wal.<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>    // useful to test the procedure recovery.<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    if (testing != null &amp;&amp; testing.shouldKillBeforeStoreUpdate()) {<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      LOG.debug("TESTING: Kill before store update");<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      stop();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    if (proc.removeStackIndex()) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      proc.setState(ProcedureState.ROLLEDBACK);<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>      if (proc.hasParent()) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>        store.delete(proc.getProcId());<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        procedures.remove(proc.getProcId());<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      } else {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        final long[] childProcIds = rollbackStack.get(proc.getProcId()).getSubprocedureIds();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>        if (childProcIds != null) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>          store.delete(proc, childProcIds);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        } else {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          store.update(proc);<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>    } else {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      store.update(proc);<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return LockState.LOCK_ACQUIRED;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  /**<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   * Executes the specified procedure<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   *  - calls the doExecute() of the procedure<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>   *  - if the procedure execution didn't fail (e.g. invalid user input)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   *     - ...and returned subprocedures<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>   *        - the subprocedures are initialized.<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   *        - the subprocedures are added to the store<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   *        - the subprocedures are added to the runnable queue<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *        - the procedure is now in a WAITING state, waiting for the subprocedures to complete<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   *     - ...if there are no subprocedure<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>   *        - the procedure completed successfully<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>   *        - if there is a parent (WAITING)<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>   *            - the parent state will be set to RUNNABLE<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   *  - in case of failure<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   *    - the store is updated with the new state<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   *    - the executor (caller of this method) will start the rollback of the procedure<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   */<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  private void execProcedure(final RootProcedureState procStack, final Procedure procedure) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>    Preconditions.checkArgument(procedure.getState() == ProcedureState.RUNNABLE);<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Execute the procedure<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    boolean suspended = false;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    boolean reExecute = false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    Procedure[] subprocs = null;<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>    do {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      reExecute = false;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      try {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        subprocs = procedure.doExecute(getEnvironment());<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        if (subprocs != null &amp;&amp; subprocs.length == 0) {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          subprocs = null;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      } catch (ProcedureSuspendedException e) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        suspended = true;<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      } catch (ProcedureYieldException e) {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        if (LOG.isTraceEnabled()) {<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>          LOG.trace("Yield " + procedure + ": " + e.getMessage());<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        scheduler.yield(procedure);<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        return;<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>      } catch (InterruptedException e) {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        handleInterruptedException(procedure, e);<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        scheduler.yield(procedure);<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        return;<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      } catch (Throwable e) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>        // Catch NullPointerExceptions or similar errors...<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        String msg = "CODE-BUG: Uncaught runtime exception: " + procedure;<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        LOG.error(msg, e);<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        procedure.setFailure(new RemoteProcedureException(msg, e));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span><a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>      if (!procedure.isFailed()) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        if (subprocs != null) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>          if (subprocs.length == 1 &amp;&amp; subprocs[0] == procedure) {<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>            // quick-shortcut for a state machine like procedure<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>            subprocs = null;<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            reExecute = true;<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          } else {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</s

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html
new file mode 100644
index 0000000..7406ba1
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.procedure2;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.commons.logging.Log;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.commons.logging.LogFactory;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.fs.FileSystem;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.fs.Path;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.After;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.Before;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.junit.Test;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.junit.experimental.categories.Category;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.io.IOException;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>import static org.junit.Assert.assertEquals;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import static org.junit.Assert.assertNotEquals;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import static org.junit.Assert.assertTrue;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>@Category({MasterTests.class, SmallTests.class})<a name="line.40"></a>
+<span class="sourceLineNo">041</span>public class TestProcedureMetrics {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  private static final Log LOG = LogFactory.getLog(TestProcedureMetrics.class);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private TestProcEnv procEnv;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  private static ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  private ProcedureStore procStore;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private HBaseCommonTestingUtility htu;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private FileSystem fs;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  private Path testDir;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private Path logDir;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private static int beginCount = 0;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private static int successCount = 0;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  private static int failedCount = 0;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  @Before<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  public void setUp() throws IOException {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    htu = new HBaseCommonTestingUtility();<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    testDir = htu.getDataTestDir();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    assertTrue(testDir.depth() &gt; 1);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>    logDir = new Path(testDir, "proc-logs");<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    procEnv = new TestProcEnv();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    procStore = ProcedureTestingUtility.createStore(htu.getConfiguration(), fs, logDir);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    procExecutor = new ProcedureExecutor&lt;TestProcEnv&gt;(htu.getConfiguration(), procEnv, procStore);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    procExecutor.testing = new ProcedureExecutor.Testing();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<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>  @After<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public void tearDown() throws IOException {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    procExecutor.stop();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    procStore.stop(false);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    fs.delete(logDir, true);<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>  @Test<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  public void testMetricForSimpleProcedure() throws Exception {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    // procedure that executes successfully<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    ProcedureMetrics proc = new ProcedureMetrics(true);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    beginCount++;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    successCount++;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  @Test<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  public void testMetricsForFailedProcedure() throws Exception {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    // procedure that fails<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    ProcedureMetrics proc = new ProcedureMetrics(false);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    beginCount++;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    failedCount++;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>  @Test<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public void testMetricForYieldProcedure() throws Exception {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    // procedure that yields<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    ProcedureMetrics proc = new ProcedureMetrics(true, true);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    beginCount++;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    successCount++;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<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>  @Test<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  public void testMetricForFailedYiledProcedure() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    // procedure that yields and fails<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    ProcedureMetrics proc = new ProcedureMetrics(false, true);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    beginCount++;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    failedCount++;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<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>  @Test<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void testMetricForProcedureWithChildren() throws Exception {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    // Procedure that yileds with one of the sub-procedures that fail<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    int subProcCount = 10;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    int failChildIndex = 2;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    int yiledChildIndex = -1;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    ProcedureMetrics[] subprocs = new ProcedureMetrics[subProcCount];<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    for (int i = 0; i &lt; subProcCount; ++i) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      subprocs[i] = new ProcedureMetrics(failChildIndex != i, yiledChildIndex == i, 3);<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>    ProcedureMetrics proc = new ProcedureMetrics(true, true, 3, subprocs);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    beginCount += subProcCount + 1;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    successCount += subProcCount - (failChildIndex + 1);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    if (failChildIndex &gt;= 0) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      failedCount += subProcCount + 1;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    } else {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      successCount++;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<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>  private static class TestProcEnv {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public boolean toggleKillBeforeStoreUpdate = false;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    public boolean triggerRollbackOnChild = false;<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>  public static class ProcedureMetrics extends SequentialProcedure&lt;TestProcEnv&gt; {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    public static long beginCount = 0;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    public static long successCount = 0;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    public static long failedCount = 0;<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    private boolean success;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    private boolean yield;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    private int yieldCount;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    private int yieldNum;<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>    private ProcedureMetrics[] subprocs = null;<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>    public ProcedureMetrics() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      this(true);<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>    public ProcedureMetrics(boolean success) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      this(success, true);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>    public ProcedureMetrics(boolean success, boolean yield) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      this(success, yield, 1);<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 ProcedureMetrics(boolean success, boolean yield, int yieldCount) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      this(success, yield, yieldCount, null);<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 ProcedureMetrics(boolean success, ProcedureMetrics[] subprocs) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      this(success, false, 1, subprocs);<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>    public ProcedureMetrics(boolean success, boolean yield, int yieldCount,<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                            ProcedureMetrics[] subprocs) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      this.success = success;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      this.yield = yield;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      this.yieldCount = yieldCount;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      this.subprocs = subprocs;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      yieldNum = 0;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    protected void updateMetricsOnSubmit(TestProcEnv env) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      beginCount++;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>    @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    protected Procedure[] execute(TestProcEnv env) throws ProcedureYieldException,<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        ProcedureSuspendedException, InterruptedException {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      if (this.yield) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        if (yieldNum &lt; yieldCount) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          yieldNum++;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>          throw new ProcedureYieldException();<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>      if (!this.success) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        setFailure("Failed", new InterruptedException("Failed"));<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        return null;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      return subprocs;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    protected void rollback(TestProcEnv env) throws IOException, InterruptedException {<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>    @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    protected boolean abort(TestProcEnv env) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      return false;<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>    @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    protected void updateMetricsOnFinish(final TestProcEnv env, final long time,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    boolean success) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      if (success) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        successCount++;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      } else {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        failedCount++;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      }<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>  }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>}<a name="line.254"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html
index a3ba133..9e2d08d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html
@@ -27,180 +27,179 @@
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.procedure2;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.util.ArrayList;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.commons.logging.Log;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.commons.logging.LogFactory;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.FileSystem;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.fs.Path;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.After;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.Before;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import static org.junit.Assert.assertEquals;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import static org.junit.Assert.assertTrue;<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>@Category({MasterTests.class, SmallTests.class})<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class TestStateMachineProcedure {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private static final Log LOG = LogFactory.getLog(TestStateMachineProcedure.class);<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static final Exception TEST_FAILURE_EXCEPTION = new Exception("test failure") {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    @Override<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    public boolean equals(final Object other) {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      if (this == other) return true;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>      if (!(other instanceof Exception)) return false;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      // we are going to serialize the exception in the test,<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      // so the instance comparison will not match<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      return getMessage().equals(((Exception)other).getMessage());<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    }<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>    @Override<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    public int hashCode() {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      return getMessage().hashCode();<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><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private ProcedureStore procStore;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private HBaseCommonTestingUtility htu;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private FileSystem fs;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private Path testDir;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private Path logDir;<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  @Before<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public void setUp() throws IOException {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    htu = new HBaseCommonTestingUtility();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    testDir = htu.getDataTestDir();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>    logDir = new Path(testDir, "proc-logs");<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    procStore = ProcedureTestingUtility.createWalStore(htu.getConfiguration(), fs, logDir);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    procExecutor = new ProcedureExecutor(htu.getConfiguration(), new TestProcEnv(), procStore);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<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>  @After<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public void tearDown() throws IOException {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, false);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    assertTrue("expected executor to be running", procExecutor.isRunning());<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>    procExecutor.stop();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    procStore.stop(false);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    fs.delete(logDir, true);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  @Test<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public void testChildOnLastStep() {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<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>  @Test<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public void testChildOnLastStepDoubleExecution() throws Exception {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<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>  @Test<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public void testChildOnLastStepWithRollback() {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    assertEquals(3, procExecutor.getEnvironment().rollbackCount.get());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  @Test<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public void testChildOnLastStepWithRollbackDoubleExecution() throws Exception {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId, true);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    assertEquals(6, procExecutor.getEnvironment().rollbackCount.get());<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<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 enum TestSMProcedureState { STEP_1, STEP_2 };<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static class TestSMProcedure<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      extends StateMachineProcedure&lt;TestProcEnv, TestSMProcedureState&gt; {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    protected Flow executeFromState(TestProcEnv env, TestSMProcedureState state) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      LOG.info("EXEC " + state + " " + this);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      env.execCount.incrementAndGet();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      switch (state) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        case STEP_1:<a name="line.145"></a>
-<span class="sourceLineNo">146</span>          setNextState(TestSMProcedureState.STEP_2);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>          break;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        case STEP_2:<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          addChildProcedure(new SimpleChildProcedure());<a name="line.149"></a>
-<span class="sourceLineNo">150</span>          return Flow.NO_MORE_STATE;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      return Flow.HAS_MORE_STATE;<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>    protected void rollbackState(TestProcEnv env, TestSMProcedureState state) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      LOG.info("ROLLBACK " + state + " " + this);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      env.rollbackCount.incrementAndGet();<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>    protected TestSMProcedureState getState(int stateId) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return TestSMProcedureState.values()[stateId];<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>    protected int getStateId(TestSMProcedureState state) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      return state.ordinal();<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>    protected TestSMProcedureState getInitialState() {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      return TestSMProcedureState.STEP_1;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public static class SimpleChildProcedure extends NoopProcedure&lt;TestProcEnv&gt; {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    protected Procedure[] execute(TestProcEnv env) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      LOG.info("EXEC " + this);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      env.execCount.incrementAndGet();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      if (env.triggerChildRollback) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        setFailure("test-failure", TEST_FAILURE_EXCEPTION);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      return null;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    @Override<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    protected void rollback(TestProcEnv env) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      LOG.info("ROLLBACK " + this);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      env.rollbackCount.incrementAndGet();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  public class TestProcEnv {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    AtomicInteger execCount = new AtomicInteger(0);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    AtomicInteger rollbackCount = new AtomicInteger(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    boolean triggerChildRollback = false;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>}<a name="line.195"></a>
+<span class="sourceLineNo">022</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.logging.Log;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.logging.LogFactory;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.fs.FileSystem;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.Path;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.junit.After;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.junit.Before;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.junit.Test;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.experimental.categories.Category;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>import static org.junit.Assert.assertEquals;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import static org.junit.Assert.assertTrue;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>@Category({MasterTests.class, SmallTests.class})<a name="line.42"></a>
+<span class="sourceLineNo">043</span>public class TestStateMachineProcedure {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  private static final Log LOG = LogFactory.getLog(TestStateMachineProcedure.class);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private static final Exception TEST_FAILURE_EXCEPTION = new Exception("test failure") {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    public boolean equals(final Object other) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      if (this == other) return true;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      if (!(other instanceof Exception)) return false;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      // we are going to serialize the exception in the test,<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      // so the instance comparison will not match<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      return getMessage().equals(((Exception)other).getMessage());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>    @Override<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    public int hashCode() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      return getMessage().hashCode();<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><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private ProcedureStore procStore;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private HBaseCommonTestingUtility htu;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private FileSystem fs;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private Path testDir;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private Path logDir;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  @Before<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public void setUp() throws IOException {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    htu = new HBaseCommonTestingUtility();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    testDir = htu.getDataTestDir();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>    logDir = new Path(testDir, "proc-logs");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    procStore = ProcedureTestingUtility.createWalStore(htu.getConfiguration(), fs, logDir);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    procExecutor = new ProcedureExecutor(htu.getConfiguration(), new TestProcEnv(), procStore);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  @After<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public void tearDown() throws IOException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, false);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    assertTrue("expected executor to be running", procExecutor.isRunning());<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>    procExecutor.stop();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    procStore.stop(false);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    fs.delete(logDir, true);<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>  @Test<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public void testChildOnLastStep() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @Test<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public void testChildOnLastStepDoubleExecution() throws Exception {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    assertEquals(0, procExecutor.getEnvironment().rollbackCount.get());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    ProcedureTestingUtility.assertProcNotFailed(procExecutor, procId);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  @Test<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public void testChildOnLastStepWithRollback() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    ProcedureTestingUtility.waitProcedure(procExecutor, procId);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    assertEquals(3, procExecutor.getEnvironment().execCount.get());<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    assertEquals(3, procExecutor.getEnvironment().rollbackCount.get());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<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>  @Test<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  public void testChildOnLastStepWithRollbackDoubleExecution() throws Exception {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    procExecutor.getEnvironment().triggerChildRollback = true;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExecutor, true);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    long procId = procExecutor.submitProcedure(new TestSMProcedure());<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    ProcedureTestingUtility.testRecoveryAndDoubleExecution(procExecutor, procId, true);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    assertEquals(6, procExecutor.getEnvironment().execCount.get());<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    assertEquals(6, procExecutor.getEnvironment().rollbackCount.get());<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    Throwable cause = ProcedureTestingUtility.assertProcFailed(procExecutor, procId);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assertEquals(TEST_FAILURE_EXCEPTION, cause);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public enum TestSMProcedureState { STEP_1, STEP_2 };<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public static class TestSMProcedure<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      extends StateMachineProcedure&lt;TestProcEnv, TestSMProcedureState&gt; {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    protected Flow executeFromState(TestProcEnv env, TestSMProcedureState state) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      LOG.info("EXEC " + state + " " + this);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      env.execCount.incrementAndGet();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      switch (state) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        case STEP_1:<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          setNextState(TestSMProcedureState.STEP_2);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          break;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        case STEP_2:<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          addChildProcedure(new SimpleChildProcedure());<a name="line.148"></a>
+<span class="sourceLineNo">149</span>          return Flow.NO_MORE_STATE;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      return Flow.HAS_MORE_STATE;<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>    protected void rollbackState(TestProcEnv env, TestSMProcedureState state) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      LOG.info("ROLLBACK " + state + " " + this);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      env.rollbackCount.incrementAndGet();<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>    protected TestSMProcedureState getState(int stateId) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return TestSMProcedureState.values()[stateId];<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>    protected int getStateId(TestSMProcedureState state) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return state.ordinal();<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>    protected TestSMProcedureState getInitialState() {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      return TestSMProcedureState.STEP_1;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public static class SimpleChildProcedure extends NoopProcedure&lt;TestProcEnv&gt; {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    protected Procedure[] execute(TestProcEnv env) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      LOG.info("EXEC " + this);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      env.execCount.incrementAndGet();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      if (env.triggerChildRollback) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        setFailure("test-failure", TEST_FAILURE_EXCEPTION);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return null;<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>    protected void rollback(TestProcEnv env) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      LOG.info("ROLLBACK " + this);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      env.rollbackCount.incrementAndGet();<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>  public class TestProcEnv {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    AtomicInteger execCount = new AtomicInteger(0);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    AtomicInteger rollbackCount = new AtomicInteger(0);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    boolean triggerChildRollback = false;<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>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestRootProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestRootProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestRootProcedure.html
index 5330f64..c9fcf01 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestRootProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestRootProcedure.html
@@ -219,7 +219,7 @@ extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="../..
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureEvents.TestTimeoutEventProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureEvents.TestTimeoutEventProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureEvents.TestTimeoutEventProcedure.html
index d070cda..e09c956 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureEvents.TestTimeoutEventProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureEvents.TestTimeoutEventProcedure.html
@@ -254,7 +254,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTest
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp, wasEx
 ecuted</code></li>
+<code>acquireLock, addStackIndex, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateMetricsO
 nFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestFaultyRollback.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestFaultyRollback.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestFaultyRollback.html
index ce04077..0a313fb 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestFaultyRollback.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestFaultyRollback.html
@@ -230,7 +230,7 @@ extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="http:
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestSequentialProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestSequentialProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestSequentialProcedure.html
index d01018c..f741085 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestSequentialProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestSequentialProcedure.html
@@ -252,7 +252,7 @@ extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="http:
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html
index cf1d1f4..17d46c9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html
@@ -238,7 +238,7 @@ extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="http:
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.html
index ba6e9ce..d82c44e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.html
@@ -254,7 +254,7 @@ extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="http:
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.BusyWaitProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.BusyWaitProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.BusyWaitProcedure.html
index 334440c..2639b1e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.BusyWaitProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.BusyWaitProcedure.html
@@ -222,7 +222,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTest
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStr
 ingState, updateTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleS
 B, toStringState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestLatchChore.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestLatchChore.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestLatchChore.html
index 526c645..b146d00 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestLatchChore.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestLatchChore.html
@@ -227,7 +227,7 @@ extends org.apache.hadoop.hbase.procedure2.ProcedureInMemoryChore&lt;<a href="..
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStr
 ingState, updateTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleS
 B, toStringState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html
index 62e0a3f..28644d1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html
@@ -44,7 +44,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestLatchChore.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" target="_top">Frames</a></li>
@@ -199,7 +199,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestLatchChore.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html
new file mode 100644
index 0000000..b8ab0bd
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html
@@ -0,0 +1,615 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestProcedureMetrics.ProcedureMetrics (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestProcedureMetrics.ProcedureMetrics (Apache HBase 2.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestProcedureMetrics.ProcedureMetrics.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" target="_top">Frames</a></li>
+<li><a href="TestProcedureMetrics.ProcedureMetrics.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.procedure2</div>
+<h2 title="Class TestProcedureMetrics.ProcedureMetrics" class="title">Class TestProcedureMetrics.ProcedureMetrics</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;org.apache.hadoop.hbase.procedure2.Procedure&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.171">TestProcedureMetrics.ProcedureMetrics</a>
+extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
+<code>org.apache.hadoop.hbase.procedure2.Procedure.LockState</code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#beginCount">beginCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#failedCount">failedCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#subprocs">subprocs</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#success">success</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#successCount">successCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#yield">yield</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#yieldCount">yieldCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#yieldNum">yieldNum</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
+<code>NO_PROC_ID, NO_TIMEOUT</code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics--">ProcedureMetrics</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-">ProcedureMetrics</a></span>(boolean&nbsp;success)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-boolean-">ProcedureMetrics</a></span>(boolean&nbsp;success,
+                boolean&nbsp;yield)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-boolean-int-">ProcedureMetrics</a></span>(boolean&nbsp;success,
+                boolean&nbsp;yield,
+                int&nbsp;yieldCount)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-boolean-int-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics:A-">ProcedureMetrics</a></span>(boolean&nbsp;success,
+                boolean&nbsp;yield,
+                int&nbsp;yieldCount,
+                <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a>[]&nbsp;subprocs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics:A-">ProcedureMetrics</a></span>(boolean&nbsp;success,
+                <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a>[]&nbsp;subprocs)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#abort-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">abort</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected org.apache.hadoop.hbase.procedure2.Procedure[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#execute-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">execute</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#rollback-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">rollback</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#updateMetricsOnFinish-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-long-boolean-">updateMetricsOnFinish</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env,
+                     long&nbsp;time,
+                     boolean&nbsp;success)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#updateMetricsOnSubmit-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">updateMetricsOnSubmit</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.SequentialProcedure">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.SequentialProcedure</h3>
+<code>deserializeStateData, doExecute, doRollback, serializeStateData</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eTimestamp, wasExecuted</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="beginCount">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>beginCount</h4>
+<pre>public static&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.172">beginCount</a></pre>
+</li>
+</ul>
+<a name="successCount">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>successCount</h4>
+<pre>public static&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.173">successCount</a></pre>
+</li>
+</ul>
+<a name="failedCount">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>failedCount</h4>
+<pre>public static&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.174">failedCount</a></pre>
+</li>
+</ul>
+<a name="success">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>success</h4>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.176">success</a></pre>
+</li>
+</ul>
+<a name="yield">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>yield</h4>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.177">yield</a></pre>
+</li>
+</ul>
+<a name="yieldCount">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>yieldCount</h4>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.178">yieldCount</a></pre>
+</li>
+</ul>
+<a name="yieldNum">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>yieldNum</h4>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.179">yieldNum</a></pre>
+</li>
+</ul>
+<a name="subprocs">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>subprocs</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.181">subprocs</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ProcedureMetrics--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProcedureMetrics</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.183">ProcedureMetrics</a>()</pre>
+</li>
+</ul>
+<a name="ProcedureMetrics-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProcedureMetrics</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.187">ProcedureMetrics</a>(boolean&nbsp;success)</pre>
+</li>
+</ul>
+<a name="ProcedureMetrics-boolean-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProcedureMetrics</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.191">ProcedureMetrics</a>(boolean&nbsp;success,
+                        boolean&nbsp;yield)</pre>
+</li>
+</ul>
+<a name="ProcedureMetrics-boolean-boolean-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProcedureMetrics</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.195">ProcedureMetrics</a>(boolean&nbsp;success,
+                        boolean&nbsp;yield,
+                        int&nbsp;yieldCount)</pre>
+</li>
+</ul>
+<a name="ProcedureMetrics-boolean-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProcedureMetrics</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.199">ProcedureMetrics</a>(boolean&nbsp;success,
+                        <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a>[]&nbsp;subprocs)</pre>
+</li>
+</ul>
+<a name="ProcedureMetrics-boolean-boolean-int-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics:A-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ProcedureMetrics</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.203">ProcedureMetrics</a>(boolean&nbsp;success,
+                        boolean&nbsp;yield,
+                        int&nbsp;yieldCount,
+                        <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a>[]&nbsp;subprocs)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="updateMetricsOnSubmit-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateMetricsOnSubmit</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.213">updateMetricsOnSubmit</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>updateMetricsOnSubmit</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.procedure2.Procedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="execute-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>execute</h4>
+<pre>protected&nbsp;org.apache.hadoop.hbase.procedure2.Procedure[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.218">execute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)
+                                                          throws org.apache.hadoop.hbase.procedure2.ProcedureYieldException,
+                                                                 org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException,
+                                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>execute</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.procedure2.Procedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&gt;</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.hadoop.hbase.procedure2.ProcedureYieldException</code></dd>
+<dd><code>org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException</code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="rollback-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rollback</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.234">rollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)
+                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>rollback</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.procedure2.Procedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&gt;</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="abort-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>abort</h4>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.239">abort</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>abort</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.procedure2.Procedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="updateMetricsOnFinish-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-long-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>updateMetricsOnFinish</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#line.244">updateMetricsOnFinish</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env,
+                                     long&nbsp;time,
+                                     boolean&nbsp;success)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>updateMetricsOnFinish</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.procedure2.Procedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestProcedureMetrics.ProcedureMetrics.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" target="_top">Frames</a></li>
+<li><a href="TestProcedureMetrics.ProcedureMetrics.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.EnableTableFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.EnableTableFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.EnableTableFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.EnableTableFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.EnableTableFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.MergeTableRegionsFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.MergeTableRegionsFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.MergeTableRegionsFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.MergeTableRegionsFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.MergeTableRegionsFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ModifyColumnFamilyFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ModifyColumnFamilyFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ModifyColumnFamilyFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ModifyColumnFamilyFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ModifyColumnFamilyFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ModifyTableFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ModifyTableFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ModifyTableFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ModifyTableFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ModifyTableFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.NamespaceFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.NamespaceFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.NamespaceFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.NamespaceFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.NamespaceFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.WaitForStateCallable.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.WaitForStateCallable.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.WaitForStateCallable.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.WaitForStateCallable.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.WaitForStateCallable.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.RestoreSnapshotFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.RestoreSnapshotFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.RestoreSnapshotFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.RestoreSnapshotFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.RestoreSnapshotFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.TableWaitForStateCallable.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.TableWaitForStateCallable.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.TableWaitForStateCallable.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.TableWaitForStateCallable.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.TableWaitForStateCallable.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ThrowableAbortable.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ThrowableAbortable.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ThrowableAbortable.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ThrowableAbortable.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.ThrowableAbortable.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TruncateTableFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TruncateTableFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TruncateTableFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TruncateTableFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.TruncateTableFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 569b6cc..e7b2b70 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
@@ -1106,7 +1106,7 @@
 <span class="sourceLineNo">1098</span>      if (v.getFirst() != null) {<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span>        ProcedureInfo result = v.getFirst();<a name="line.1099"></a>
 <span class="sourceLineNo">1100</span>        builder.setState(GetProcedureResultResponse.State.FINISHED);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>        builder.setStartTime(result.getStartTime());<a name="line.1101"></a>
+<span class="sourceLineNo">1101</span>        builder.setSubmittedTime(result.getSubmittedTime());<a name="line.1101"></a>
 <span class="sourceLineNo">1102</span>        builder.setLastUpdate(result.getLastUpdate());<a name="line.1102"></a>
 <span class="sourceLineNo">1103</span>        if (result.isFailed()) {<a name="line.1103"></a>
 <span class="sourceLineNo">1104</span>          builder.setException(ForeignExceptionUtil.toProtoForeignException(result.getException()));<a name="line.1104"></a>
@@ -1121,7 +1121,7 @@
 <span class="sourceLineNo">1113</span>          builder.setState(GetProcedureResultResponse.State.NOT_FOUND);<a name="line.1113"></a>
 <span class="sourceLineNo">1114</span>        } else {<a name="line.1114"></a>
 <span class="sourceLineNo">1115</span>          builder.setState(GetProcedureResultResponse.State.RUNNING);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>          builder.setStartTime(proc.getStartTime());<a name="line.1116"></a>
+<span class="sourceLineNo">1116</span>          builder.setSubmittedTime(proc.getSubmittedTime());<a name="line.1116"></a>
 <span class="sourceLineNo">1117</span>          builder.setLastUpdate(proc.getLastUpdate());<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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 569b6cc..e7b2b70 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
@@ -1106,7 +1106,7 @@
 <span class="sourceLineNo">1098</span>      if (v.getFirst() != null) {<a name="line.1098"></a>
 <span class="sourceLineNo">1099</span>        ProcedureInfo result = v.getFirst();<a name="line.1099"></a>
 <span class="sourceLineNo">1100</span>        builder.setState(GetProcedureResultResponse.State.FINISHED);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>        builder.setStartTime(result.getStartTime());<a name="line.1101"></a>
+<span class="sourceLineNo">1101</span>        builder.setSubmittedTime(result.getSubmittedTime());<a name="line.1101"></a>
 <span class="sourceLineNo">1102</span>        builder.setLastUpdate(result.getLastUpdate());<a name="line.1102"></a>
 <span class="sourceLineNo">1103</span>        if (result.isFailed()) {<a name="line.1103"></a>
 <span class="sourceLineNo">1104</span>          builder.setException(ForeignExceptionUtil.toProtoForeignException(result.getException()));<a name="line.1104"></a>
@@ -1121,7 +1121,7 @@
 <span class="sourceLineNo">1113</span>          builder.setState(GetProcedureResultResponse.State.NOT_FOUND);<a name="line.1113"></a>
 <span class="sourceLineNo">1114</span>        } else {<a name="line.1114"></a>
 <span class="sourceLineNo">1115</span>          builder.setState(GetProcedureResultResponse.State.RUNNING);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>          builder.setStartTime(proc.getStartTime());<a name="line.1116"></a>
+<span class="sourceLineNo">1116</span>          builder.setSubmittedTime(proc.getSubmittedTime());<a name="line.1116"></a>
 <span class="sourceLineNo">1117</span>          builder.setLastUpdate(proc.getLastUpdate());<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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html
index 371cf5e..364d989 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html
@@ -48,7 +48,7 @@
 <span class="sourceLineNo">040</span>  /**<a name="line.40"></a>
 <span class="sourceLineNo">041</span>   * Description<a name="line.41"></a>
 <span class="sourceLineNo">042</span>   */<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  String METRICS_DESCRIPTION = "Metrics about HBase master assingment manager.";<a name="line.43"></a>
+<span class="sourceLineNo">043</span>  String METRICS_DESCRIPTION = "Metrics about HBase master assignment manager.";<a name="line.43"></a>
 <span class="sourceLineNo">044</span><a name="line.44"></a>
 <span class="sourceLineNo">045</span>  String RIT_COUNT_NAME = "ritCount";<a name="line.45"></a>
 <span class="sourceLineNo">046</span>  String RIT_COUNT_OVER_THRESHOLD_NAME = "ritCountOverThreshold";<a name="line.46"></a>
@@ -57,33 +57,40 @@
 <span class="sourceLineNo">049</span>  String ASSIGN_TIME_NAME = "assign";<a name="line.49"></a>
 <span class="sourceLineNo">050</span>  String BULK_ASSIGN_TIME_NAME = "bulkAssign";<a name="line.50"></a>
 <span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  void updateAssignmentTime(long time);<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  void updateBulkAssignTime(long time);<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  /**<a name="line.56"></a>
-<span class="sourceLineNo">057</span>   * Set the number of regions in transition.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   *<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   * @param ritCount count of the regions in transition.<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  void setRIT(int ritCount);<a name="line.61"></a>
+<span class="sourceLineNo">052</span>  String RIT_COUNT_DESC = "Current number of Regions In Transition (Gauge).";<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  String RIT_COUNT_OVER_THRESHOLD_DESC =<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      "Current number of Regions In Transition over threshold time (Gauge).";<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  String RIT_OLDEST_AGE_DESC = "Timestamp in milliseconds of the oldest Region In Transition (Gauge).";<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  String RIT_DURATION_DESC =<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      "Total durations in milliseconds for all Regions in Transition (Histogram).";<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  void updateAssignmentTime(long time);<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  void updateBulkAssignTime(long time);<a name="line.61"></a>
 <span class="sourceLineNo">062</span><a name="line.62"></a>
 <span class="sourceLineNo">063</span>  /**<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   * Set the count of the number of regions that have been in transition over the threshold time.<a name="line.64"></a>
+<span class="sourceLineNo">064</span>   * Set the number of regions in transition.<a name="line.64"></a>
 <span class="sourceLineNo">065</span>   *<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * @param ritCountOverThreshold number of regions in transition for longer than threshold.<a name="line.66"></a>
+<span class="sourceLineNo">066</span>   * @param ritCount count of the regions in transition.<a name="line.66"></a>
 <span class="sourceLineNo">067</span>   */<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  void setRITCountOverThreshold(int ritCountOverThreshold);<a name="line.68"></a>
+<span class="sourceLineNo">068</span>  void setRIT(int ritCount);<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>   * Set the oldest region in transition.<a name="line.71"></a>
+<span class="sourceLineNo">071</span>   * Set the count of the number of regions that have been in transition over the threshold time.<a name="line.71"></a>
 <span class="sourceLineNo">072</span>   *<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   * @param age age of the oldest RIT.<a name="line.73"></a>
+<span class="sourceLineNo">073</span>   * @param ritCountOverThreshold number of regions in transition for longer than threshold.<a name="line.73"></a>
 <span class="sourceLineNo">074</span>   */<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  void setRITOldestAge(long age);<a name="line.75"></a>
+<span class="sourceLineNo">075</span>  void setRITCountOverThreshold(int ritCountOverThreshold);<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  void updateRitDuration(long duration);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>}<a name="line.78"></a>
+<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   * Set the oldest region in transition.<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   *<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   * @param age age of the oldest RIT.<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  void setRITOldestAge(long age);<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  void updateRitDuration(long duration);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>}<a name="line.85"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html
index f9d34cf..36d01d7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html
@@ -54,41 +54,42 @@
 <span class="sourceLineNo">046</span>  }<a name="line.46"></a>
 <span class="sourceLineNo">047</span><a name="line.47"></a>
 <span class="sourceLineNo">048</span>  public void init() {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    ritGauge = metricsRegistry.newGauge(RIT_COUNT_NAME, "", 0l);<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    ritCountOverThresholdGauge = metricsRegistry.newGauge(RIT_COUNT_OVER_THRESHOLD_NAME, "", 0l);<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    ritOldestAgeGauge = metricsRegistry.newGauge(RIT_OLDEST_AGE_NAME, "", 0l);<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    assignTimeHisto = metricsRegistry.newTimeHistogram(ASSIGN_TIME_NAME);<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    bulkAssignTimeHisto = metricsRegistry.newTimeHistogram(BULK_ASSIGN_TIME_NAME);<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    ritDurationHisto = metricsRegistry.newTimeHistogram(RIT_DURATION_NAME);<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  }<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  @Override<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  public void updateAssignmentTime(long time) {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    assignTimeHisto.add(time);<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 updateBulkAssignTime(long time) {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    bulkAssignTimeHisto.add(time);<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  public void setRIT(int ritCount) {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    ritGauge.set(ritCount);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  public void setRITCountOverThreshold(int ritCount) {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    ritCountOverThresholdGauge.set(ritCount);<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>  public void setRITOldestAge(long ritCount) {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    ritOldestAgeGauge.set(ritCount);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  @Override<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  public void updateRitDuration(long duration) {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    ritDurationHisto.add(duration);<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">049</span>    ritGauge = metricsRegistry.newGauge(RIT_COUNT_NAME, RIT_COUNT_DESC, 0l);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    ritCountOverThresholdGauge = metricsRegistry.newGauge(RIT_COUNT_OVER_THRESHOLD_NAME,<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        RIT_COUNT_OVER_THRESHOLD_DESC,0l);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    ritOldestAgeGauge = metricsRegistry.newGauge(RIT_OLDEST_AGE_NAME, RIT_OLDEST_AGE_DESC, 0l);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    assignTimeHisto = metricsRegistry.newTimeHistogram(ASSIGN_TIME_NAME);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    bulkAssignTimeHisto = metricsRegistry.newTimeHistogram(BULK_ASSIGN_TIME_NAME);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    ritDurationHisto = metricsRegistry.newTimeHistogram(RIT_DURATION_NAME, RIT_DURATION_DESC);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  }<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  public void updateAssignmentTime(long time) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    assignTimeHisto.add(time);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  @Override<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  public void updateBulkAssignTime(long time) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    bulkAssignTimeHisto.add(time);<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>  public void setRIT(int ritCount) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    ritGauge.set(ritCount);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  public void setRITCountOverThreshold(int ritCount) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    ritCountOverThresholdGauge.set(ritCount);<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>  public void setRITOldestAge(long ritCount) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    ritOldestAgeGauge.set(ritCount);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  public void updateRitDuration(long duration) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    ritDurationHisto.add(duration);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>}<a name="line.84"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
index f0104db..6c8a23e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
@@ -174,7 +174,7 @@
 <span class="sourceLineNo">166</span><a name="line.166"></a>
 <span class="sourceLineNo">167</span>  private void throwProcedureYieldException(final String msg) throws ProcedureYieldException {<a name="line.167"></a>
 <span class="sourceLineNo">168</span>    String logMsg = msg + "; cycle=" + this.cycles + ", running for " +<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        StringUtils.formatTimeDiff(System.currentTimeMillis(), getStartTime());<a name="line.169"></a>
+<span class="sourceLineNo">169</span>        StringUtils.formatTimeDiff(System.currentTimeMillis(), getSubmittedTime());<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    // The procedure executor logs ProcedureYieldException at trace level. For now, log these<a name="line.170"></a>
 <span class="sourceLineNo">171</span>    // yields for server crash processing at DEBUG. Revisit when stable.<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    if (LOG.isDebugEnabled()) LOG.debug(logMsg);<a name="line.172"></a>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 a1495ff..0c11099 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
@@ -839,1019 +839,1030 @@
 <span class="sourceLineNo">831</span>  private long pushProcedure(final Procedure proc) {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>    final long currentProcId = proc.getProcId();<a name="line.832"></a>
 <span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the rollback stack for the procedure<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    RootProcedureState stack = new RootProcedureState();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    rollbackStack.put(currentProcId, stack);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // Submit the new subprocedures<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    assert !procedures.containsKey(currentProcId);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    procedures.put(currentProcId, proc);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    sendProcedureAddedNotification(currentProcId);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    scheduler.addBack(proc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return proc.getProcId();<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Send an abort notification the specified procedure.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * @param procId the procedure to abort<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  public boolean abort(final long procId) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    return abort(procId, true);<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>   * Send an abort notification the specified procedure.<a name="line.857"></a>
-<span class="sourceLineNo">858</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>   * @param procId the procedure to abort<a name="line.859"></a>
-<span class="sourceLineNo">860</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    final Procedure proc = procedures.get(procId);<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (proc != null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        return false;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return proc.abort(getEnvironment());<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    return false;<a name="line.871"></a>
-<span class="sourceLineNo">872</span>  }<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>  //  Executor query helpers<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  // ==========================================================================<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public Procedure getProcedure(final long procId) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    return procedures.get(procId);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  }<a name="line.879"></a>
-<span class="sourceLineNo">880</span><a name="line.880"></a>
-<span class="sourceLineNo">881</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    final Procedure proc = getProcedure(procId);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (clazz.isInstance(proc)) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      return (T)proc;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    return null;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  public ProcedureInfo getResult(final long procId) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    return completed.get(procId);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>  }<a name="line.891"></a>
-<span class="sourceLineNo">892</span><a name="line.892"></a>
-<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * Return true if the procedure is finished.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * Use getResult() to check the state or get the result data.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @param procId the ID of the procedure to check<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  public boolean isFinished(final long procId) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    return !procedures.containsKey(procId);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>  }<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * Return true if the procedure is started.<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   * @param procId the ID of the procedure to check<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   */<a name="line.908"></a>
-<span class="sourceLineNo">909</span>  public boolean isStarted(final long procId) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    final Procedure proc = procedures.get(procId);<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (proc == null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      return completed.get(procId) != null;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return proc.wasExecuted();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param procId the ID of the procedure to remove<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   */<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public void removeResult(final long procId) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    final ProcedureInfo result = completed.get(procId);<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    if (result == null) {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      if (LOG.isDebugEnabled()) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      }<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      return;<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>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>  }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    ProcedureInfo result = completed.get(procId);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    Procedure proc = null;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    if (result == null) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      proc = procedures.get(procId);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      if (proc == null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        result = completed.get(procId);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    return new Pair(result, proc);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Check if the user is this procedure's owner<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   * @param procId the target procedure<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param user the user<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   * @return true if the user is the owner of the procedure,<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   *   false otherwise or the owner is unknown.<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   */<a name="line.953"></a>
-<span class="sourceLineNo">954</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    if (user == null) return false;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    final Procedure proc = procedures.get(procId);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    if (proc != null) {<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      return proc.getOwner().equals(user.getShortName());<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>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    if (procInfo == null) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>      // At this time, we cannot check the owner of the procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return false;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  }<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>   * List procedures.<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   * @return the procedures in a list<a name="line.973"></a>
-<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      // it could complete after we walk through procedures list and insert into<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      procedureLists.add(e.getValue());<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    }<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return procedureLists;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  // ==========================================================================<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  //  Listeners helpers<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  // ==========================================================================<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    this.listeners.add(listener);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  }<a name="line.995"></a>
-<span class="sourceLineNo">996</span><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    return this.listeners.remove(listener);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>  }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    if (!this.listeners.isEmpty()) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          listener.procedureLoaded(procId);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>        } catch (Throwable e) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<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>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    if (!this.listeners.isEmpty()) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>          listener.procedureAdded(procId);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        } catch (Throwable e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        }<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>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    if (!this.listeners.isEmpty()) {<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>        try {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          listener.procedureFinished(procId);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>        } catch (Throwable e) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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><a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  // ==========================================================================<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  //  Procedure IDs helpers<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  // ==========================================================================<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  private long nextProcId() {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    long procId = lastProcId.incrementAndGet();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    if (procId &lt; 0) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>        procId = lastProcId.get();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>        if (procId &gt;= 0)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>          break;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      while (procedures.containsKey(procId)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        procId = lastProcId.incrementAndGet();<a name="line.1049"></a>
+<span class="sourceLineNo">834</span>    // Update metrics on start of a procedure<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>    // Create the rollback stack for the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    RootProcedureState stack = new RootProcedureState();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    rollbackStack.put(currentProcId, stack);<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // Submit the new subprocedures<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    assert !procedures.containsKey(currentProcId);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    procedures.put(currentProcId, proc);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    sendProcedureAddedNotification(currentProcId);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    scheduler.addBack(proc);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    return proc.getProcId();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Send an abort notification the specified procedure.<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @param procId the procedure to abort<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public boolean abort(final long procId) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    return abort(procId, true);<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>  /**<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   * Send an abort notification the specified procedure.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.861"></a>
+<span class="sourceLineNo">862</span>   * @param procId the procedure to abort<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    final Procedure proc = procedures.get(procId);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    if (proc != null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return false;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>      return proc.abort(getEnvironment());<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    return false;<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>  //  Executor query helpers<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  // ==========================================================================<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  public Procedure getProcedure(final long procId) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    return procedures.get(procId);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    final Procedure proc = getProcedure(procId);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (clazz.isInstance(proc)) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      return (T)proc;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    return null;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>  }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>  public ProcedureInfo getResult(final long procId) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    return completed.get(procId);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>  }<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>   * Return true if the procedure is finished.<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Use getResult() to check the state or get the result data.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @param procId the ID of the procedure to check<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>   */<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public boolean isFinished(final long procId) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    return !procedures.containsKey(procId);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * Return true if the procedure is started.<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * @param procId the ID of the procedure to check<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  public boolean isStarted(final long procId) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    final Procedure proc = procedures.get(procId);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    if (proc == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      return completed.get(procId) != null;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return proc.wasExecuted();<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param procId the ID of the procedure to remove<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  public void removeResult(final long procId) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>    final ProcedureInfo result = completed.get(procId);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    if (result == null) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      if (LOG.isDebugEnabled()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      return;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<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>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    ProcedureInfo result = completed.get(procId);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    Procedure proc = null;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    if (result == null) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      proc = procedures.get(procId);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      if (proc == null) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        result = completed.get(procId);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    return new Pair(result, proc);<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>   * Check if the user is this procedure's owner<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   * @param procId the target procedure<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param user the user<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return true if the user is the owner of the procedure,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   *   false otherwise or the owner is unknown.<a name="line.955"></a>
+<span class="sourceLineNo">956</span>   */<a name="line.956"></a>
+<span class="sourceLineNo">957</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    if (user == null) return false;<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>    final Procedure proc = procedures.get(procId);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    if (proc != null) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      return proc.getOwner().equals(user.getShortName());<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    if (procInfo == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      // At this time, we cannot check the owner of the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      return false;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<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>  /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>   * List procedures.<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * @return the procedures in a list<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      // it could complete after we walk through procedures list and insert into<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      procedureLists.add(e.getValue());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    return procedureLists;<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>  //  Listeners helpers<a name="line.994"></a>
+<span class="sourceLineNo">995</span>  // ==========================================================================<a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    this.listeners.add(listener);<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>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    return this.listeners.remove(listener);<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>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    if (!this.listeners.isEmpty()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          listener.procedureLoaded(procId);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        } catch (Throwable e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    if (!this.listeners.isEmpty()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          listener.procedureAdded(procId);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        } catch (Throwable e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    if (!this.listeners.isEmpty()) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        try {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          listener.procedureFinished(procId);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        } catch (Throwable e) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  // ==========================================================================<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>  //  Procedure IDs helpers<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  // ==========================================================================<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>  private long nextProcId() {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    long procId = lastProcId.incrementAndGet();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    if (procId &lt; 0) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        procId = lastProcId.get();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        if (procId &gt;= 0)<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>          break;<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return procId;<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>  @VisibleForTesting<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  protected long getLastProcId() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return lastProcId.get();<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>  @VisibleForTesting<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span><a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>  // ==========================================================================<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  //  Executions<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  // ==========================================================================<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  private void executeProcedure(final Procedure proc) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    if (rootProcId == null) {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      executeRollback(proc);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      return;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    if (procStack == null) return;<a name="line.1082"></a>
+<span class="sourceLineNo">1051</span>      while (procedures.containsKey(procId)) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        procId = lastProcId.incrementAndGet();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    return procId;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>  @VisibleForTesting<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>  protected long getLastProcId() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    return lastProcId.get();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>  }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  @VisibleForTesting<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>  }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  // ==========================================================================<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>  //  Executions<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  // ==========================================================================<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>  private void executeProcedure(final Procedure proc) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    if (rootProcId == null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      executeRollback(proc);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>      return;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    }<a name="line.1082"></a>
 <span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    do {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      // Try to acquire the execution<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (!procStack.acquire(proc)) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        if (procStack.setRollback()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>            case LOCK_ACQUIRED:<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>                break;<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>            case LOCK_YIELD_WAIT:<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>              procStack.unsetRollback();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>              scheduler.yield(proc);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>              break;<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>            case LOCK_EVENT_WAIT:<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>              procStack.unsetRollback();<a name="line.1097"></a>
+<span class="sourceLineNo">1084</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    if (procStack == null) return;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    do {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>      // Try to acquire the execution<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>      if (!procStack.acquire(proc)) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        if (procStack.setRollback()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>            case LOCK_ACQUIRED:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>            case LOCK_YIELD_WAIT:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>              procStack.unsetRollback();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>              scheduler.yield(proc);<a name="line.1097"></a>
 <span class="sourceLineNo">1098</span>              break;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>            default:<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>              throw new UnsupportedOperationException();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>          }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        } else {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>          // if we can't rollback means that some child is still running.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>          // the rollback will be executed after all the children are done.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          if (!proc.wasExecuted()) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>            switch (executeRollback(proc)) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>              case LOCK_ACQUIRED:<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>                break;<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>              case LOCK_YIELD_WAIT:<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>                scheduler.yield(proc);<a name="line.1111"></a>
+<span class="sourceLineNo">1099</span>            case LOCK_EVENT_WAIT:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>              procStack.unsetRollback();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>              break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>            default:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>              throw new UnsupportedOperationException();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>          // if we can't rollback means that some child is still running.<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>          // the rollback will be executed after all the children are done.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>          if (!proc.wasExecuted()) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>            switch (executeRollback(proc)) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>              case LOCK_ACQUIRED:<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>                break;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>              case LOCK_EVENT_WAIT:<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>                break;<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>              default:<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>                throw new UnsupportedOperationException();<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>        break;<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>      }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span><a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      // Execute the procedure<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      switch (acquireLock(proc)) {<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>        case LOCK_ACQUIRED:<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>          execProcedure(procStack, proc);<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>          releaseLock(proc, false);<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>          break;<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>        case LOCK_YIELD_WAIT:<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          scheduler.yield(proc);<a name="line.1131"></a>
+<span class="sourceLineNo">1113</span>              case LOCK_YIELD_WAIT:<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                scheduler.yield(proc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>              case LOCK_EVENT_WAIT:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                break;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>              default:<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                throw new UnsupportedOperationException();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>            }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        break;<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>      // Execute the procedure<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      switch (acquireLock(proc)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        case LOCK_ACQUIRED:<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>          execProcedure(procStack, proc);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          releaseLock(proc, false);<a name="line.1131"></a>
 <span class="sourceLineNo">1132</span>          break;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        case LOCK_EVENT_WAIT:<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>          // someone will wake us up when the lock is available<a name="line.1134"></a>
+<span class="sourceLineNo">1133</span>        case LOCK_YIELD_WAIT:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          scheduler.yield(proc);<a name="line.1134"></a>
 <span class="sourceLineNo">1135</span>          break;<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        default:<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>          throw new UnsupportedOperationException();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>      procStack.release(proc);<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      // useful to test the procedure recovery.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (testing != null &amp;&amp; !isRunning()) {<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>      if (proc.isSuccess()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>        if (LOG.isDebugEnabled()) {<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        // Finalize the procedure state<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        if (proc.getProcId() == rootProcId) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>          procedureFinished(proc);<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        } else {<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          execCompletionCleanup(proc);<a name="line.1155"></a>
+<span class="sourceLineNo">1136</span>        case LOCK_EVENT_WAIT:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          // someone will wake us up when the lock is available<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>          break;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        default:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>          throw new UnsupportedOperationException();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      procStack.release(proc);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // useful to test the procedure recovery.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      if (testing != null &amp;&amp; !isRunning()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        break;<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>      if (proc.isSuccess()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        // update metrics on finishing the procedure<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        if (LOG.isDebugEnabled()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1155"></a>
 <span class="sourceLineNo">1156</span>        }<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>        break;<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      }<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    } while (procStack.isFailed());<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    final TEnvironment env = getEnvironment();<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      return LockState.LOCK_ACQUIRED;<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    return proc.doAcquireLock(env);<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    final TEnvironment env = getEnvironment();<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    // for how the framework works, we know that we will always have the lock<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (force || !proc.holdLock(env)) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      proc.doReleaseLock(env);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * Execute the rollback of the full procedure stack.<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * finished to user, and the result will be the fatal exception.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   */<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    if (exception == null) {<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>      exception = procStack.getException();<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      rootProc.setFailure(exception);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      store.update(rootProc);<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span><a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span><a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>    int stackTail = subprocStack.size();<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    boolean reuseLock = false;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    while (stackTail --&gt; 0) {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span><a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      LockState lockState;<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>        // queue waiting for the lock availability<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>        return lockState;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      }<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span><a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      lockState = executeRollback(proc);<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // If the next procedure is the same to this one<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      // we can avoid to lock/unlock each step<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      if (!reuseLock) {<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>        releaseLock(proc, false);<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // useful to test the procedure recovery.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      if (abortRollback) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>        return lockState;<a name="line.1226"></a>
+<span class="sourceLineNo">1157</span>        // Finalize the procedure state<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        if (proc.getProcId() == rootProcId) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>          procedureFinished(proc);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>          execCompletionCleanup(proc);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>      }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>    } while (procStack.isFailed());<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    final TEnvironment env = getEnvironment();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      return LockState.LOCK_ACQUIRED;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    return proc.doAcquireLock(env);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    final TEnvironment env = getEnvironment();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    // for how the framework works, we know that we will always have the lock<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    if (force || !proc.holdLock(env)) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      proc.doReleaseLock(env);<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><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Execute the rollback of the full procedure stack.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * finished to user, and the result will be the fatal exception.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (exception == null) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      exception = procStack.getException();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      rootProc.setFailure(exception);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      store.update(rootProc);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>    int stackTail = subprocStack.size();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    boolean reuseLock = false;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    while (stackTail --&gt; 0) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      LockState lockState;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        // queue waiting for the lock availability<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        return lockState;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      lockState = executeRollback(proc);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      // If the next procedure is the same to this one<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>      // we can avoid to lock/unlock each step<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      if (!reuseLock) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        releaseLock(proc, false);<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>      subprocStack.remove(stackTail);<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      // if the procedure is kind enough to pass the slot to someone else, yield<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      if (proc.isYieldAfterExecutionStep(getEnvironment())) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>        return LockState.LOCK_YIELD_WAIT;<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      }<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span><a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      if (proc != rootProc) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        execCompletionCleanup(proc);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span><a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // Finalize the procedure state<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    LOG.info("Rolled back " + rootProc +<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>             " exec-time=" + StringUtils.humanTimeDiff(rootProc.elapsedTime()));<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    procedureFinished(rootProc);<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    return LockState.LOCK_ACQUIRED;<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span><a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  /**<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * Execute the rollback of the procedure step.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   * It updates the store with the new state (stack index)<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>   * or will remove completly the procedure in case it is a child.<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  private LockState executeRollback(final Procedure proc) {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>    try {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      proc.doRollback(getEnvironment());<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    } catch (IOException e) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      if (LOG.isDebugEnabled()) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        LOG.debug("Roll back attempt failed for " + proc, e);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      }<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    } catch (InterruptedException e) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      handleInterruptedException(proc, e);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    } catch (Throwable e) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      // Catch NullPointerExceptions or similar errors...<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>      LOG.fatal("CODE-BUG: Uncatched runtime exception for procedure: " + proc, e);<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    // allows to kill the executor before something is stored to the wal.<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>    // useful to test the procedure recovery.<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    if (testing != null &amp;&amp; testing.shouldKillBeforeStoreUpdate()) {<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      LOG.debug("TESTING: Kill before store update");<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      stop();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    if (proc.removeStackIndex()) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      proc.setState(ProcedureState.ROLLEDBACK);<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>      if (proc.hasParent()) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>        store.delete(proc.getProcId());<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        procedures.remove(proc.getProcId());<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      } else {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        final long[] childProcIds = rollbackStack.get(proc.getProcId()).getSubprocedureIds();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>        if (childProcIds != null) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>          store.delete(proc, childProcIds);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        } else {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          store.update(proc);<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>    } else {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      store.update(proc);<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return LockState.LOCK_ACQUIRED;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  /**<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   * Executes the specified procedure<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   *  - calls the doExecute() of the procedure<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>   *  - if the procedure execution didn't fail (e.g. invalid user input)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   *     - ...and returned subprocedures<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>   *        - the subprocedures are initialized.<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   *        - the subprocedures are added to the store<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   *        - the subprocedures are added to the runnable queue<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *        - the procedure is now in a WAITING state, waiting for the subprocedures to complete<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   *     - ...if there are no subprocedure<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>   *        - the procedure completed successfully<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>   *        - if there is a parent (WAITING)<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>   *            - the parent state will be set to RUNNABLE<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   *  - in case of failure<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   *    - the store is updated with the new state<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   *    - the executor (caller of this method) will start the rollback of the procedure<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   */<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  private void execProcedure(final RootProcedureState procStack, final Procedure procedure) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>    Preconditions.checkArgument(procedure.getState() == ProcedureState.RUNNABLE);<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Execute the procedure<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    boolean suspended = false;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    boolean reExecute = false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    Procedure[] subprocs = null;<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>    do {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      reExecute = false;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      try {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        subprocs = procedure.doExecute(getEnvironment());<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        if (subprocs != null &amp;&amp; subprocs.length == 0) {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          subprocs = null;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      } catch (ProcedureSuspendedException e) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        suspended = true;<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      } catch (ProcedureYieldException e) {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        if (LOG.isTraceEnabled()) {<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>          LOG.trace("Yield " + procedure + ": " + e.getMessage());<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        scheduler.yield(procedure);<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        return;<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>      } catch (InterruptedException e) {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        handleInterruptedException(procedure, e);<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        scheduler.yield(procedure);<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        return;<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      } catch (Throwable e) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>        // Catch NullPointerExceptions or similar errors...<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        String msg = "CODE-BUG: Uncaught runtime exception: " + procedure;<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        LOG.error(msg, e);<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        procedure.setFailure(new RemoteProcedureException(msg, e));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span><a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>      if (!procedure.isFailed()) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        if (subprocs != null) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>          if (subprocs.length == 1 &amp;&amp; subprocs[0] == procedure) {<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>            // quick-shortcut for a state machine like procedure<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>            subprocs = null;<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            reExecute = true;<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          } else {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>            // yield the current procedure, and make the subproced

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html
new file mode 100644
index 0000000..dc57b29
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html
@@ -0,0 +1,586 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestProcedureMetrics (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestProcedureMetrics (Apache HBase 2.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestProcedureMetrics.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" target="_top">Frames</a></li>
+<li><a href="TestProcedureMetrics.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.procedure2</div>
+<h2 title="Class TestProcedureMetrics" class="title">Class TestProcedureMetrics</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.procedure2.TestProcedureMetrics</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.41">TestProcedureMetrics</a>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#beginCount">beginCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#failedCount">failedCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private org.apache.hadoop.fs.FileSystem</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#fs">fs</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/HBaseCommonTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseCommonTestingUtility</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#htu">htu</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static org.apache.commons.logging.Log</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#LOG">LOG</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private org.apache.hadoop.fs.Path</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#logDir">logDir</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#PROCEDURE_EXECUTOR_SLOTS">PROCEDURE_EXECUTOR_SLOTS</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#procEnv">procEnv</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static org.apache.hadoop.hbase.procedure2.ProcedureExecutor&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#procExecutor">procExecutor</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private org.apache.hadoop.hbase.procedure2.store.ProcedureStore</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#procStore">procStore</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#successCount">successCount</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private org.apache.hadoop.fs.Path</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testDir">testDir</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#TestProcedureMetrics--">TestProcedureMetrics</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#setUp--">setUp</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#tearDown--">tearDown</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testMetricForFailedYiledProcedure--">testMetricForFailedYiledProcedure</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testMetricForProcedureWithChildren--">testMetricForProcedureWithChildren</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testMetricForSimpleProcedure--">testMetricForSimpleProcedure</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testMetricForYieldProcedure--">testMetricForYieldProcedure</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#testMetricsForFailedProcedure--">testMetricsForFailedProcedure</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="LOG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LOG</h4>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.42">LOG</a></pre>
+</li>
+</ul>
+<a name="PROCEDURE_EXECUTOR_SLOTS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROCEDURE_EXECUTOR_SLOTS</h4>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.44">PROCEDURE_EXECUTOR_SLOTS</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.PROCEDURE_EXECUTOR_SLOTS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="procEnv">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>procEnv</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.46">procEnv</a></pre>
+</li>
+</ul>
+<a name="procExecutor">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>procExecutor</h4>
+<pre>private static&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureExecutor&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.47">procExecutor</a></pre>
+</li>
+</ul>
+<a name="procStore">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>procStore</h4>
+<pre>private&nbsp;org.apache.hadoop.hbase.procedure2.store.ProcedureStore <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.48">procStore</a></pre>
+</li>
+</ul>
+<a name="htu">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>htu</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseCommonTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseCommonTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.50">htu</a></pre>
+</li>
+</ul>
+<a name="fs">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fs</h4>
+<pre>private&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.51">fs</a></pre>
+</li>
+</ul>
+<a name="testDir">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testDir</h4>
+<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.52">testDir</a></pre>
+</li>
+</ul>
+<a name="logDir">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logDir</h4>
+<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.53">logDir</a></pre>
+</li>
+</ul>
+<a name="beginCount">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>beginCount</h4>
+<pre>private static&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.55">beginCount</a></pre>
+</li>
+</ul>
+<a name="successCount">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>successCount</h4>
+<pre>private static&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.56">successCount</a></pre>
+</li>
+</ul>
+<a name="failedCount">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>failedCount</h4>
+<pre>private static&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.57">failedCount</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestProcedureMetrics--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestProcedureMetrics</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.41">TestProcedureMetrics</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setUp--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUp</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.61">setUp</a>()
+           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="tearDown--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tearDown</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.77">tearDown</a>()
+              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testMetricForSimpleProcedure--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testMetricForSimpleProcedure</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.84">testMetricForSimpleProcedure</a>()
+                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testMetricsForFailedProcedure--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testMetricsForFailedProcedure</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.98">testMetricsForFailedProcedure</a>()
+                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testMetricForYieldProcedure--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testMetricForYieldProcedure</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.112">testMetricForYieldProcedure</a>()
+                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testMetricForFailedYiledProcedure--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testMetricForFailedYiledProcedure</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.126">testMetricForFailedYiledProcedure</a>()</pre>
+</li>
+</ul>
+<a name="testMetricForProcedureWithChildren--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testMetricForProcedureWithChildren</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#line.140">testMetricForProcedureWithChildren</a>()
+                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestProcedureMetrics.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" target="_top">Frames</a></li>
+<li><a href="TestProcedureMetrics.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html
index 8d56d64..29042d1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html
@@ -230,7 +230,7 @@ extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="../..
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html
index f022085..9a33e53 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -515,7 +515,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html
index e27e720..c809697 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html
@@ -242,7 +242,7 @@ extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="../..
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step1Procedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step1Procedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step1Procedure.html
index d21de0e..56d40eb 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step1Procedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step1Procedure.html
@@ -223,7 +223,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedure
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step2Procedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step2Procedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step2Procedure.html
index 94b95fc..f874eb4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step2Procedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step2Procedure.html
@@ -206,7 +206,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedure
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.html
index 6aa7517..630f3af 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.html
@@ -238,7 +238,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedure
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestSingleStepProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestSingleStepProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestSingleStepProcedure.html
index 78108d4..a0b2b29 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestSingleStepProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestSingleStepProcedure.html
@@ -230,7 +230,7 @@ extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="../..
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.html
index de8701a..9422bc2 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.html
@@ -281,7 +281,7 @@ extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, updateTimestamp, wasExecuted</co
 de></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, updateMetricsOnFinish, u
 pdateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestProcedure.html
index 49b5073..167d61a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestProcedure.html
@@ -234,7 +234,7 @@ extends org.apache.hadoop.hbase.procedure2.Procedure&lt;<a href="../../../../../
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, execute, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimple
 SB, toStringState, updateTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, execute, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStri
 ngSimpleSB, toStringState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestSingleStepProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestSingleStepProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestSingleStepProcedure.html
index c541c55..ab07869 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestSingleStepProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestSingleStepProcedure.html
@@ -222,7 +222,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedure
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, 
 updateTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStrin
 gState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestTwoStepProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestTwoStepProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestTwoStepProcedure.html
index 9b6a83c..65cbd33 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestTwoStepProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestTwoStepProcedure.html
@@ -222,7 +222,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedure
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, 
 updateTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStrin
 gState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.TestProcedureWithEvent.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.TestProcedureWithEvent.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.TestProcedureWithEvent.html
index 7e7a3d0..77606e1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.TestProcedureWithEvent.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.TestProcedureWithEvent.html
@@ -222,7 +222,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTest
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStr
 ingState, updateTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleS
 B, toStringState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.TestLockProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.TestLockProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.TestLockProcedure.html
index 6ffd998..3ec3f7b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.TestLockProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.TestLockProcedure.html
@@ -289,7 +289,7 @@ extends org.apache.hadoop.hbase.procedure2.Procedure&lt;<a href="../../../../../
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasOwner, hasParent, hasTimeout, haveSameParent, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp, wasExecuted</code></li>
+<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasOwner, hasParent, hasTimeout, haveSameParent, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringDetails, toStringSimpleSB, toStringState, updateMetricsOnFinish, updateMetricsOnSubmit, upd
 ateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.BasicProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.BasicProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.BasicProcedure.html
index a712fb9..f953e13 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.BasicProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.BasicProcedure.html
@@ -220,7 +220,7 @@ extends org.apache.hadoop.hbase.procedure2.Procedure&lt;<a href="../../../../../
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStr
 ingState, updateTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleS
 B, toStringState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.DoublingStateStringBasicProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.DoublingStateStringBasicProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.DoublingStateStringBasicProcedure.html
index 9671c65..40d0885 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.DoublingStateStringBasicProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.DoublingStateStringBasicProcedure.html
@@ -213,7 +213,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedure
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, updat
 eTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleS
 B, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.SimpleStateMachineProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.SimpleStateMachineProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.SimpleStateMachineProcedure.html
index c1d8995..8067502 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.SimpleStateMachineProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureToString.SimpleStateMachineProcedure.html
@@ -241,7 +241,7 @@ extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, updateTimestamp, wasExecuted</co
 de></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, updateMetricsOnFinish, u
 pdateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureUtil.TestProcedureNoDefaultConstructor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureUtil.TestProcedureNoDefaultConstructor.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureUtil.TestProcedureNoDefaultConstructor.html
index 8ac8190..8a6fbd4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureUtil.TestProcedureNoDefaultConstructor.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestProcedureUtil.TestProcedureNoDefaultConstructor.html
@@ -206,7 +206,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTest
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp,
  wasExecuted</code></li>
+<code>addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateMe
 tricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html
index 0eec100..016b736 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.173">TestStateMachineProcedure.SimpleChildProcedure</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.172">TestStateMachineProcedure.SimpleChildProcedure</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.NoopProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureTestingUtility.NoopProcedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&gt;</pre>
 </li>
 </ul>
@@ -215,7 +215,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTest
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStr
 ingState, updateTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleS
 B, toStringState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -244,7 +244,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTest
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SimpleChildProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html#line.173">SimpleChildProcedure</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html#line.172">SimpleChildProcedure</a>()</pre>
 </li>
 </ul>
 </li>
@@ -261,7 +261,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTest
 <ul class="blockList">
 <li class="blockList">
 <h4>execute</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.procedure2.Procedure[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html#line.174">execute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&nbsp;env)</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.procedure2.Procedure[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html#line.173">execute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&nbsp;env)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.NoopProcedure.html#execute-TEnv-">execute</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.NoopProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureTestingUtility.NoopProcedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&gt;</code></dd>
@@ -274,7 +274,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTest
 <ul class="blockListLast">
 <li class="blockList">
 <h4>rollback</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html#line.184">rollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&nbsp;env)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html#line.183">rollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&nbsp;env)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.NoopProcedure.html#rollback-TEnv-">rollback</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.NoopProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureTestingUtility.NoopProcedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&gt;</code></dd>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 1850c7d..ee59b2d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -118,6 +118,7 @@
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestSequentialProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureExecution.TestSequentialProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureExecution.TestWaitingProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureExecution.TestWaitingProcedure.TestWaitChild</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureMetrics.ProcedureMetrics</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureNonce.TestSingleStepProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.BaseTestStepProcedure</span></a>
 <ul>
@@ -163,6 +164,8 @@
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureExecutor.TestProcEnv</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureInMemoryChore</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureInMemoryChore.TestProcEnv</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureMetrics</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureMetrics.TestProcEnv</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureNonce</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureNonce.TestProcEnv</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery</span></a></li>
@@ -203,8 +206,8 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-use.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-use.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-use.html
index cf0cecb..700b8a9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-use.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-use.html
@@ -146,6 +146,12 @@
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/procedure2/class-use/TestProcedureInMemoryChore.TestProcEnv.html#org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore.TestProcEnv</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.ProcedureMetrics.html#org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.TestProcEnv.html#org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/procedure2/class-use/TestProcedureNonce.TestProcEnv.html#org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestProcEnv</a>&nbsp;</td>
 </tr>
 <tr class="altColor">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.TestSequentialProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.TestSequentialProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.TestSequentialProcedure.html
index 80c14fd..2e65cb1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.TestSequentialProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.TestSequentialProcedure.html
@@ -238,7 +238,7 @@ extends org.apache.hadoop.hbase.procedure2.SequentialProcedure&lt;<a href="http:
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimesta
 mp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doReleaseLock, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updat
 eMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 0234cce..3f091ab 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -587,9 +587,9 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController.TestTableDDLProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController.TestTableDDLProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController.TestTableDDLProcedure.html
index 95ae798..eb8000c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController.TestTableDDLProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController.TestTableDDLProcedure.html
@@ -246,7 +246,7 @@ implements org.apache.hadoop.hbase.master.procedure.TableProcedureInterface</pre
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStr
 ingState, updateTimestamp, wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, isYieldAfterExecutionStep, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleS
 B, toStringState, updateMetricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index d77b894..208ee4d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -248,10 +248,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index 66badd2..a33c8f3 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -1569,6 +1569,7 @@
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestSequentialProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureExecution.TestSequentialProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureExecution.TestWaitingProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureExecution.TestWaitingProcedure.TestWaitChild.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureExecution.TestWaitingProcedure.TestWaitChild</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureMetrics.ProcedureMetrics</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureNonce.TestSingleStepProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.BaseTestStepProcedure</span></a>
 <ul>
@@ -2747,6 +2748,8 @@
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureInMemoryChore.TestProcEnv</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/TestProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureManager</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/TestProcedureMember.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureMember</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureMetrics</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureMetrics.TestProcEnv</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureNonce</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureNonce.TestProcEnv</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html
new file mode 100644
index 0000000..7406ba1
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.procedure2;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.commons.logging.Log;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.commons.logging.LogFactory;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.fs.FileSystem;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.fs.Path;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.After;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.Before;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.junit.Test;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.junit.experimental.categories.Category;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.io.IOException;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>import static org.junit.Assert.assertEquals;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import static org.junit.Assert.assertNotEquals;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import static org.junit.Assert.assertTrue;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>@Category({MasterTests.class, SmallTests.class})<a name="line.40"></a>
+<span class="sourceLineNo">041</span>public class TestProcedureMetrics {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  private static final Log LOG = LogFactory.getLog(TestProcedureMetrics.class);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private TestProcEnv procEnv;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  private static ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  private ProcedureStore procStore;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private HBaseCommonTestingUtility htu;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private FileSystem fs;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  private Path testDir;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private Path logDir;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private static int beginCount = 0;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private static int successCount = 0;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  private static int failedCount = 0;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  @Before<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  public void setUp() throws IOException {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    htu = new HBaseCommonTestingUtility();<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    testDir = htu.getDataTestDir();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    assertTrue(testDir.depth() &gt; 1);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>    logDir = new Path(testDir, "proc-logs");<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    procEnv = new TestProcEnv();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    procStore = ProcedureTestingUtility.createStore(htu.getConfiguration(), fs, logDir);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    procExecutor = new ProcedureExecutor&lt;TestProcEnv&gt;(htu.getConfiguration(), procEnv, procStore);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    procExecutor.testing = new ProcedureExecutor.Testing();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<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>  @After<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public void tearDown() throws IOException {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    procExecutor.stop();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    procStore.stop(false);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    fs.delete(logDir, true);<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>  @Test<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  public void testMetricForSimpleProcedure() throws Exception {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    // procedure that executes successfully<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    ProcedureMetrics proc = new ProcedureMetrics(true);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    beginCount++;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    successCount++;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  @Test<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  public void testMetricsForFailedProcedure() throws Exception {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    // procedure that fails<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    ProcedureMetrics proc = new ProcedureMetrics(false);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    beginCount++;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    failedCount++;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>  @Test<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public void testMetricForYieldProcedure() throws Exception {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    // procedure that yields<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    ProcedureMetrics proc = new ProcedureMetrics(true, true);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    beginCount++;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    successCount++;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<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>  @Test<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  public void testMetricForFailedYiledProcedure() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    // procedure that yields and fails<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    ProcedureMetrics proc = new ProcedureMetrics(false, true);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    beginCount++;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    failedCount++;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<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>  @Test<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void testMetricForProcedureWithChildren() throws Exception {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    // Procedure that yileds with one of the sub-procedures that fail<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    int subProcCount = 10;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    int failChildIndex = 2;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    int yiledChildIndex = -1;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    ProcedureMetrics[] subprocs = new ProcedureMetrics[subProcCount];<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    for (int i = 0; i &lt; subProcCount; ++i) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      subprocs[i] = new ProcedureMetrics(failChildIndex != i, yiledChildIndex == i, 3);<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>    ProcedureMetrics proc = new ProcedureMetrics(true, true, 3, subprocs);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    beginCount += subProcCount + 1;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    successCount += subProcCount - (failChildIndex + 1);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    if (failChildIndex &gt;= 0) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      failedCount += subProcCount + 1;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    } else {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      successCount++;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<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>  private static class TestProcEnv {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public boolean toggleKillBeforeStoreUpdate = false;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    public boolean triggerRollbackOnChild = false;<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>  public static class ProcedureMetrics extends SequentialProcedure&lt;TestProcEnv&gt; {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    public static long beginCount = 0;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    public static long successCount = 0;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    public static long failedCount = 0;<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    private boolean success;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    private boolean yield;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    private int yieldCount;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    private int yieldNum;<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>    private ProcedureMetrics[] subprocs = null;<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>    public ProcedureMetrics() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      this(true);<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>    public ProcedureMetrics(boolean success) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      this(success, true);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>    public ProcedureMetrics(boolean success, boolean yield) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      this(success, yield, 1);<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 ProcedureMetrics(boolean success, boolean yield, int yieldCount) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      this(success, yield, yieldCount, null);<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 ProcedureMetrics(boolean success, ProcedureMetrics[] subprocs) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      this(success, false, 1, subprocs);<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>    public ProcedureMetrics(boolean success, boolean yield, int yieldCount,<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                            ProcedureMetrics[] subprocs) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      this.success = success;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      this.yield = yield;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      this.yieldCount = yieldCount;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      this.subprocs = subprocs;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      yieldNum = 0;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    protected void updateMetricsOnSubmit(TestProcEnv env) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      beginCount++;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>    @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    protected Procedure[] execute(TestProcEnv env) throws ProcedureYieldException,<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        ProcedureSuspendedException, InterruptedException {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      if (this.yield) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        if (yieldNum &lt; yieldCount) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          yieldNum++;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>          throw new ProcedureYieldException();<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>      if (!this.success) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        setFailure("Failed", new InterruptedException("Failed"));<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        return null;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      return subprocs;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    protected void rollback(TestProcEnv env) throws IOException, InterruptedException {<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>    @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    protected boolean abort(TestProcEnv env) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      return false;<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>    @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    protected void updateMetricsOnFinish(final TestProcEnv env, final long time,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    boolean success) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      if (success) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        successCount++;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      } else {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        failedCount++;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      }<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>  }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>}<a name="line.254"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html
new file mode 100644
index 0000000..7406ba1
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.procedure2;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.commons.logging.Log;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.commons.logging.LogFactory;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.fs.FileSystem;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.fs.Path;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseCommonTestingUtility;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.After;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.Before;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.junit.Test;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.junit.experimental.categories.Category;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.io.IOException;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>import static org.junit.Assert.assertEquals;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import static org.junit.Assert.assertNotEquals;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import static org.junit.Assert.assertTrue;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>@Category({MasterTests.class, SmallTests.class})<a name="line.40"></a>
+<span class="sourceLineNo">041</span>public class TestProcedureMetrics {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  private static final Log LOG = LogFactory.getLog(TestProcedureMetrics.class);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  private static final int PROCEDURE_EXECUTOR_SLOTS = 1;<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private TestProcEnv procEnv;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  private static ProcedureExecutor&lt;TestProcEnv&gt; procExecutor;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  private ProcedureStore procStore;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private HBaseCommonTestingUtility htu;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private FileSystem fs;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  private Path testDir;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private Path logDir;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private static int beginCount = 0;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private static int successCount = 0;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  private static int failedCount = 0;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  @Before<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  public void setUp() throws IOException {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    htu = new HBaseCommonTestingUtility();<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    testDir = htu.getDataTestDir();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    fs = testDir.getFileSystem(htu.getConfiguration());<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    assertTrue(testDir.depth() &gt; 1);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>    logDir = new Path(testDir, "proc-logs");<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    procEnv = new TestProcEnv();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    procStore = ProcedureTestingUtility.createStore(htu.getConfiguration(), fs, logDir);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    procExecutor = new ProcedureExecutor&lt;TestProcEnv&gt;(htu.getConfiguration(), procEnv, procStore);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    procExecutor.testing = new ProcedureExecutor.Testing();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    procStore.start(PROCEDURE_EXECUTOR_SLOTS);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);<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>  @After<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public void tearDown() throws IOException {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    procExecutor.stop();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    procStore.stop(false);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    fs.delete(logDir, true);<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>  @Test<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  public void testMetricForSimpleProcedure() throws Exception {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    // procedure that executes successfully<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    ProcedureMetrics proc = new ProcedureMetrics(true);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    beginCount++;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    successCount++;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  @Test<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  public void testMetricsForFailedProcedure() throws Exception {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    // procedure that fails<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    ProcedureMetrics proc = new ProcedureMetrics(false);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    beginCount++;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    failedCount++;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>  @Test<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public void testMetricForYieldProcedure() throws Exception {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    // procedure that yields<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    ProcedureMetrics proc = new ProcedureMetrics(true, true);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    beginCount++;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    successCount++;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<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>  @Test<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  public void testMetricForFailedYiledProcedure() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    // procedure that yields and fails<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    ProcedureMetrics proc = new ProcedureMetrics(false, true);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    beginCount++;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    failedCount++;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<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>  @Test<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void testMetricForProcedureWithChildren() throws Exception {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    // Procedure that yileds with one of the sub-procedures that fail<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    int subProcCount = 10;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    int failChildIndex = 2;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    int yiledChildIndex = -1;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    ProcedureMetrics[] subprocs = new ProcedureMetrics[subProcCount];<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    for (int i = 0; i &lt; subProcCount; ++i) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      subprocs[i] = new ProcedureMetrics(failChildIndex != i, yiledChildIndex == i, 3);<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>    ProcedureMetrics proc = new ProcedureMetrics(true, true, 3, subprocs);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    assertNotEquals("ProcId zero!", 0, id);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    beginCount += subProcCount + 1;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    successCount += subProcCount - (failChildIndex + 1);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    if (failChildIndex &gt;= 0) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      failedCount += subProcCount + 1;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    } else {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      successCount++;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    ProcedureTestingUtility.waitProcedure(procExecutor, proc);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    assertEquals("successCount doesn't match!", successCount, proc.successCount);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);<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>  private static class TestProcEnv {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public boolean toggleKillBeforeStoreUpdate = false;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    public boolean triggerRollbackOnChild = false;<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>  public static class ProcedureMetrics extends SequentialProcedure&lt;TestProcEnv&gt; {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    public static long beginCount = 0;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    public static long successCount = 0;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    public static long failedCount = 0;<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    private boolean success;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    private boolean yield;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    private int yieldCount;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    private int yieldNum;<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>    private ProcedureMetrics[] subprocs = null;<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>    public ProcedureMetrics() {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      this(true);<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>    public ProcedureMetrics(boolean success) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      this(success, true);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>    public ProcedureMetrics(boolean success, boolean yield) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      this(success, yield, 1);<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 ProcedureMetrics(boolean success, boolean yield, int yieldCount) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      this(success, yield, yieldCount, null);<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 ProcedureMetrics(boolean success, ProcedureMetrics[] subprocs) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      this(success, false, 1, subprocs);<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>    public ProcedureMetrics(boolean success, boolean yield, int yieldCount,<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                            ProcedureMetrics[] subprocs) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      this.success = success;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      this.yield = yield;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      this.yieldCount = yieldCount;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      this.subprocs = subprocs;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      yieldNum = 0;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    protected void updateMetricsOnSubmit(TestProcEnv env) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      beginCount++;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>    @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    protected Procedure[] execute(TestProcEnv env) throws ProcedureYieldException,<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        ProcedureSuspendedException, InterruptedException {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      if (this.yield) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        if (yieldNum &lt; yieldCount) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          yieldNum++;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>          throw new ProcedureYieldException();<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>      if (!this.success) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        setFailure("Failed", new InterruptedException("Failed"));<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        return null;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      return subprocs;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    protected void rollback(TestProcEnv env) throws IOException, InterruptedException {<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>    @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    protected boolean abort(TestProcEnv env) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      return false;<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>    @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    protected void updateMetricsOnFinish(final TestProcEnv env, final long time,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    boolean success) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      if (success) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        successCount++;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      } else {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        failedCount++;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      }<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>  }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>}<a name="line.254"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html
index a1495ff..0c11099 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html
@@ -839,1019 +839,1030 @@
 <span class="sourceLineNo">831</span>  private long pushProcedure(final Procedure proc) {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>    final long currentProcId = proc.getProcId();<a name="line.832"></a>
 <span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the rollback stack for the procedure<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    RootProcedureState stack = new RootProcedureState();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    rollbackStack.put(currentProcId, stack);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // Submit the new subprocedures<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    assert !procedures.containsKey(currentProcId);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    procedures.put(currentProcId, proc);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    sendProcedureAddedNotification(currentProcId);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    scheduler.addBack(proc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return proc.getProcId();<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Send an abort notification the specified procedure.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * @param procId the procedure to abort<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  public boolean abort(final long procId) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    return abort(procId, true);<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>   * Send an abort notification the specified procedure.<a name="line.857"></a>
-<span class="sourceLineNo">858</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>   * @param procId the procedure to abort<a name="line.859"></a>
-<span class="sourceLineNo">860</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    final Procedure proc = procedures.get(procId);<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (proc != null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        return false;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return proc.abort(getEnvironment());<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    return false;<a name="line.871"></a>
-<span class="sourceLineNo">872</span>  }<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>  //  Executor query helpers<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  // ==========================================================================<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public Procedure getProcedure(final long procId) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    return procedures.get(procId);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  }<a name="line.879"></a>
-<span class="sourceLineNo">880</span><a name="line.880"></a>
-<span class="sourceLineNo">881</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    final Procedure proc = getProcedure(procId);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (clazz.isInstance(proc)) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      return (T)proc;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    return null;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  public ProcedureInfo getResult(final long procId) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    return completed.get(procId);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>  }<a name="line.891"></a>
-<span class="sourceLineNo">892</span><a name="line.892"></a>
-<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * Return true if the procedure is finished.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * Use getResult() to check the state or get the result data.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @param procId the ID of the procedure to check<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  public boolean isFinished(final long procId) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    return !procedures.containsKey(procId);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>  }<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * Return true if the procedure is started.<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   * @param procId the ID of the procedure to check<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   */<a name="line.908"></a>
-<span class="sourceLineNo">909</span>  public boolean isStarted(final long procId) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    final Procedure proc = procedures.get(procId);<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (proc == null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      return completed.get(procId) != null;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return proc.wasExecuted();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param procId the ID of the procedure to remove<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   */<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public void removeResult(final long procId) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    final ProcedureInfo result = completed.get(procId);<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    if (result == null) {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      if (LOG.isDebugEnabled()) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      }<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      return;<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>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>  }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    ProcedureInfo result = completed.get(procId);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    Procedure proc = null;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    if (result == null) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      proc = procedures.get(procId);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      if (proc == null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        result = completed.get(procId);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    return new Pair(result, proc);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Check if the user is this procedure's owner<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   * @param procId the target procedure<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param user the user<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   * @return true if the user is the owner of the procedure,<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   *   false otherwise or the owner is unknown.<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   */<a name="line.953"></a>
-<span class="sourceLineNo">954</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    if (user == null) return false;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    final Procedure proc = procedures.get(procId);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    if (proc != null) {<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      return proc.getOwner().equals(user.getShortName());<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>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    if (procInfo == null) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>      // At this time, we cannot check the owner of the procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return false;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  }<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>   * List procedures.<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   * @return the procedures in a list<a name="line.973"></a>
-<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      // it could complete after we walk through procedures list and insert into<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      procedureLists.add(e.getValue());<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    }<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return procedureLists;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  // ==========================================================================<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  //  Listeners helpers<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  // ==========================================================================<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    this.listeners.add(listener);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  }<a name="line.995"></a>
-<span class="sourceLineNo">996</span><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    return this.listeners.remove(listener);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>  }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    if (!this.listeners.isEmpty()) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          listener.procedureLoaded(procId);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>        } catch (Throwable e) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<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>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    if (!this.listeners.isEmpty()) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>          listener.procedureAdded(procId);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        } catch (Throwable e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        }<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>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    if (!this.listeners.isEmpty()) {<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>        try {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          listener.procedureFinished(procId);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>        } catch (Throwable e) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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><a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  // ==========================================================================<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  //  Procedure IDs helpers<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  // ==========================================================================<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  private long nextProcId() {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    long procId = lastProcId.incrementAndGet();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    if (procId &lt; 0) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>        procId = lastProcId.get();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>        if (procId &gt;= 0)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>          break;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      while (procedures.containsKey(procId)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        procId = lastProcId.incrementAndGet();<a name="line.1049"></a>
+<span class="sourceLineNo">834</span>    // Update metrics on start of a procedure<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>    // Create the rollback stack for the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    RootProcedureState stack = new RootProcedureState();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    rollbackStack.put(currentProcId, stack);<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // Submit the new subprocedures<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    assert !procedures.containsKey(currentProcId);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    procedures.put(currentProcId, proc);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    sendProcedureAddedNotification(currentProcId);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    scheduler.addBack(proc);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    return proc.getProcId();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Send an abort notification the specified procedure.<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @param procId the procedure to abort<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public boolean abort(final long procId) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    return abort(procId, true);<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>  /**<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   * Send an abort notification the specified procedure.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.861"></a>
+<span class="sourceLineNo">862</span>   * @param procId the procedure to abort<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    final Procedure proc = procedures.get(procId);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    if (proc != null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return false;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>      return proc.abort(getEnvironment());<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    return false;<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>  //  Executor query helpers<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  // ==========================================================================<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  public Procedure getProcedure(final long procId) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    return procedures.get(procId);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    final Procedure proc = getProcedure(procId);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (clazz.isInstance(proc)) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      return (T)proc;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    return null;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>  }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>  public ProcedureInfo getResult(final long procId) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    return completed.get(procId);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>  }<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>   * Return true if the procedure is finished.<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Use getResult() to check the state or get the result data.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @param procId the ID of the procedure to check<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>   */<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public boolean isFinished(final long procId) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    return !procedures.containsKey(procId);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * Return true if the procedure is started.<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * @param procId the ID of the procedure to check<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  public boolean isStarted(final long procId) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    final Procedure proc = procedures.get(procId);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    if (proc == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      return completed.get(procId) != null;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return proc.wasExecuted();<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param procId the ID of the procedure to remove<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  public void removeResult(final long procId) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>    final ProcedureInfo result = completed.get(procId);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    if (result == null) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      if (LOG.isDebugEnabled()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      return;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<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>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    ProcedureInfo result = completed.get(procId);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    Procedure proc = null;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    if (result == null) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      proc = procedures.get(procId);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      if (proc == null) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        result = completed.get(procId);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    return new Pair(result, proc);<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>   * Check if the user is this procedure's owner<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   * @param procId the target procedure<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param user the user<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return true if the user is the owner of the procedure,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   *   false otherwise or the owner is unknown.<a name="line.955"></a>
+<span class="sourceLineNo">956</span>   */<a name="line.956"></a>
+<span class="sourceLineNo">957</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    if (user == null) return false;<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>    final Procedure proc = procedures.get(procId);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    if (proc != null) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      return proc.getOwner().equals(user.getShortName());<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    if (procInfo == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      // At this time, we cannot check the owner of the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      return false;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<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>  /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>   * List procedures.<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * @return the procedures in a list<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      // it could complete after we walk through procedures list and insert into<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      procedureLists.add(e.getValue());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    return procedureLists;<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>  //  Listeners helpers<a name="line.994"></a>
+<span class="sourceLineNo">995</span>  // ==========================================================================<a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    this.listeners.add(listener);<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>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    return this.listeners.remove(listener);<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>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    if (!this.listeners.isEmpty()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          listener.procedureLoaded(procId);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        } catch (Throwable e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    if (!this.listeners.isEmpty()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          listener.procedureAdded(procId);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        } catch (Throwable e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    if (!this.listeners.isEmpty()) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        try {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          listener.procedureFinished(procId);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        } catch (Throwable e) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  // ==========================================================================<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>  //  Procedure IDs helpers<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  // ==========================================================================<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>  private long nextProcId() {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    long procId = lastProcId.incrementAndGet();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    if (procId &lt; 0) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        procId = lastProcId.get();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        if (procId &gt;= 0)<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>          break;<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return procId;<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>  @VisibleForTesting<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  protected long getLastProcId() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return lastProcId.get();<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>  @VisibleForTesting<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span><a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>  // ==========================================================================<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  //  Executions<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  // ==========================================================================<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  private void executeProcedure(final Procedure proc) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    if (rootProcId == null) {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      executeRollback(proc);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      return;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    if (procStack == null) return;<a name="line.1082"></a>
+<span class="sourceLineNo">1051</span>      while (procedures.containsKey(procId)) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        procId = lastProcId.incrementAndGet();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    return procId;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>  @VisibleForTesting<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>  protected long getLastProcId() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    return lastProcId.get();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>  }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  @VisibleForTesting<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>  }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  // ==========================================================================<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>  //  Executions<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  // ==========================================================================<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>  private void executeProcedure(final Procedure proc) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    if (rootProcId == null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      executeRollback(proc);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>      return;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    }<a name="line.1082"></a>
 <span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    do {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      // Try to acquire the execution<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (!procStack.acquire(proc)) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        if (procStack.setRollback()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>            case LOCK_ACQUIRED:<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>                break;<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>            case LOCK_YIELD_WAIT:<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>              procStack.unsetRollback();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>              scheduler.yield(proc);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>              break;<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>            case LOCK_EVENT_WAIT:<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>              procStack.unsetRollback();<a name="line.1097"></a>
+<span class="sourceLineNo">1084</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    if (procStack == null) return;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    do {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>      // Try to acquire the execution<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>      if (!procStack.acquire(proc)) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        if (procStack.setRollback()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>            case LOCK_ACQUIRED:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>            case LOCK_YIELD_WAIT:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>              procStack.unsetRollback();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>              scheduler.yield(proc);<a name="line.1097"></a>
 <span class="sourceLineNo">1098</span>              break;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>            default:<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>              throw new UnsupportedOperationException();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>          }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        } else {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>          // if we can't rollback means that some child is still running.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>          // the rollback will be executed after all the children are done.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          if (!proc.wasExecuted()) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>            switch (executeRollback(proc)) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>              case LOCK_ACQUIRED:<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>                break;<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>              case LOCK_YIELD_WAIT:<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>                scheduler.yield(proc);<a name="line.1111"></a>
+<span class="sourceLineNo">1099</span>            case LOCK_EVENT_WAIT:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>              procStack.unsetRollback();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>              break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>            default:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>              throw new UnsupportedOperationException();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>          // if we can't rollback means that some child is still running.<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>          // the rollback will be executed after all the children are done.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>          if (!proc.wasExecuted()) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>            switch (executeRollback(proc)) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>              case LOCK_ACQUIRED:<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>                break;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>              case LOCK_EVENT_WAIT:<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>                break;<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>              default:<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>                throw new UnsupportedOperationException();<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>        break;<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>      }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span><a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      // Execute the procedure<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      switch (acquireLock(proc)) {<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>        case LOCK_ACQUIRED:<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>          execProcedure(procStack, proc);<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>          releaseLock(proc, false);<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>          break;<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>        case LOCK_YIELD_WAIT:<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          scheduler.yield(proc);<a name="line.1131"></a>
+<span class="sourceLineNo">1113</span>              case LOCK_YIELD_WAIT:<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                scheduler.yield(proc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>              case LOCK_EVENT_WAIT:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                break;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>              default:<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                throw new UnsupportedOperationException();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>            }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        break;<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>      // Execute the procedure<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      switch (acquireLock(proc)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        case LOCK_ACQUIRED:<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>          execProcedure(procStack, proc);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          releaseLock(proc, false);<a name="line.1131"></a>
 <span class="sourceLineNo">1132</span>          break;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        case LOCK_EVENT_WAIT:<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>          // someone will wake us up when the lock is available<a name="line.1134"></a>
+<span class="sourceLineNo">1133</span>        case LOCK_YIELD_WAIT:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          scheduler.yield(proc);<a name="line.1134"></a>
 <span class="sourceLineNo">1135</span>          break;<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        default:<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>          throw new UnsupportedOperationException();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>      procStack.release(proc);<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      // useful to test the procedure recovery.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (testing != null &amp;&amp; !isRunning()) {<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>      if (proc.isSuccess()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>        if (LOG.isDebugEnabled()) {<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        // Finalize the procedure state<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        if (proc.getProcId() == rootProcId) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>          procedureFinished(proc);<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        } else {<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          execCompletionCleanup(proc);<a name="line.1155"></a>
+<span class="sourceLineNo">1136</span>        case LOCK_EVENT_WAIT:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          // someone will wake us up when the lock is available<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>          break;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        default:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>          throw new UnsupportedOperationException();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      procStack.release(proc);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // useful to test the procedure recovery.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      if (testing != null &amp;&amp; !isRunning()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        break;<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>      if (proc.isSuccess()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        // update metrics on finishing the procedure<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        if (LOG.isDebugEnabled()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1155"></a>
 <span class="sourceLineNo">1156</span>        }<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>        break;<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      }<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    } while (procStack.isFailed());<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    final TEnvironment env = getEnvironment();<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      return LockState.LOCK_ACQUIRED;<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    return proc.doAcquireLock(env);<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    final TEnvironment env = getEnvironment();<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    // for how the framework works, we know that we will always have the lock<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (force || !proc.holdLock(env)) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      proc.doReleaseLock(env);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * Execute the rollback of the full procedure stack.<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * finished to user, and the result will be the fatal exception.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   */<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    if (exception == null) {<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>      exception = procStack.getException();<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      rootProc.setFailure(exception);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      store.update(rootProc);<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span><a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span><a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>    int stackTail = subprocStack.size();<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    boolean reuseLock = false;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    while (stackTail --&gt; 0) {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span><a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      LockState lockState;<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>        // queue waiting for the lock availability<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>        return lockState;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      }<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span><a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      lockState = executeRollback(proc);<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // If the next procedure is the same to this one<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      // we can avoid to lock/unlock each step<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      if (!reuseLock) {<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>        releaseLock(proc, false);<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // useful to test the procedure recovery.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      if (abortRollback) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>        return lockState;<a name="line.1226"></a>
+<span class="sourceLineNo">1157</span>        // Finalize the procedure state<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        if (proc.getProcId() == rootProcId) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>          procedureFinished(proc);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>          execCompletionCleanup(proc);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>      }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>    } while (procStack.isFailed());<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    final TEnvironment env = getEnvironment();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      return LockState.LOCK_ACQUIRED;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    return proc.doAcquireLock(env);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    final TEnvironment env = getEnvironment();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    // for how the framework works, we know that we will always have the lock<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    if (force || !proc.holdLock(env)) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      proc.doReleaseLock(env);<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><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Execute the rollback of the full procedure stack.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * finished to user, and the result will be the fatal exception.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (exception == null) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      exception = procStack.getException();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      rootProc.setFailure(exception);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      store.update(rootProc);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>    int stackTail = subprocStack.size();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    boolean reuseLock = false;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    while (stackTail --&gt; 0) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      LockState lockState;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        // queue waiting for the lock availability<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        return lockState;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      lockState = executeRollback(proc);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      // If the next procedure is the same to this one<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>      // we can avoid to lock/unlock each step<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      if (!reuseLock) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        releaseLock(proc, false);<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>      subprocStack.remove(stackTail);<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      // if the procedure is kind enough to pass the slot to someone else, yield<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      if (proc.isYieldAfterExecutionStep(getEnvironment())) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>        return LockState.LOCK_YIELD_WAIT;<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      }<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span><a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      if (proc != rootProc) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        execCompletionCleanup(proc);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span><a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // Finalize the procedure state<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    LOG.info("Rolled back " + rootProc +<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>             " exec-time=" + StringUtils.humanTimeDiff(rootProc.elapsedTime()));<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    procedureFinished(rootProc);<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    return LockState.LOCK_ACQUIRED;<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span><a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  /**<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * Execute the rollback of the procedure step.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   * It updates the store with the new state (stack index)<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>   * or will remove completly the procedure in case it is a child.<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  private LockState executeRollback(final Procedure proc) {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>    try {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      proc.doRollback(getEnvironment());<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    } catch (IOException e) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      if (LOG.isDebugEnabled()) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        LOG.debug("Roll back attempt failed for " + proc, e);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      }<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    } catch (InterruptedException e) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      handleInterruptedException(proc, e);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    } catch (Throwable e) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      // Catch NullPointerExceptions or similar errors...<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>      LOG.fatal("CODE-BUG: Uncatched runtime exception for procedure: " + proc, e);<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    // allows to kill the executor before something is stored to the wal.<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>    // useful to test the procedure recovery.<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    if (testing != null &amp;&amp; testing.shouldKillBeforeStoreUpdate()) {<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      LOG.debug("TESTING: Kill before store update");<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      stop();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    if (proc.removeStackIndex()) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      proc.setState(ProcedureState.ROLLEDBACK);<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>      if (proc.hasParent()) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>        store.delete(proc.getProcId());<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        procedures.remove(proc.getProcId());<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      } else {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        final long[] childProcIds = rollbackStack.get(proc.getProcId()).getSubprocedureIds();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>        if (childProcIds != null) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>          store.delete(proc, childProcIds);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        } else {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          store.update(proc);<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>    } else {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      store.update(proc);<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return LockState.LOCK_ACQUIRED;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  /**<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   * Executes the specified procedure<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   *  - calls the doExecute() of the procedure<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>   *  - if the procedure execution didn't fail (e.g. invalid user input)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   *     - ...and returned subprocedures<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>   *        - the subprocedures are initialized.<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   *        - the subprocedures are added to the store<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   *        - the subprocedures are added to the runnable queue<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *        - the procedure is now in a WAITING state, waiting for the subprocedures to complete<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   *     - ...if there are no subprocedure<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>   *        - the procedure completed successfully<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>   *        - if there is a parent (WAITING)<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>   *            - the parent state will be set to RUNNABLE<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   *  - in case of failure<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   *    - the store is updated with the new state<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   *    - the executor (caller of this method) will start the rollback of the procedure<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   */<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  private void execProcedure(final RootProcedureState procStack, final Procedure procedure) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>    Preconditions.checkArgument(procedure.getState() == ProcedureState.RUNNABLE);<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Execute the procedure<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    boolean suspended = false;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    boolean reExecute = false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    Procedure[] subprocs = null;<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>    do {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      reExecute = false;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      try {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        subprocs = procedure.doExecute(getEnvironment());<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        if (subprocs != null &amp;&amp; subprocs.length == 0) {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          subprocs = null;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      } catch (ProcedureSuspendedException e) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        suspended = true;<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      } catch (ProcedureYieldException e) {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        if (LOG.isTraceEnabled()) {<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>          LOG.trace("Yield " + procedure + ": " + e.getMessage());<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        scheduler.yield(procedure);<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        return;<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>      } catch (InterruptedException e) {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        handleInterruptedException(procedure, e);<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        scheduler.yield(procedure);<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        return;<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      } catch (Throwable e) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>        // Catch NullPointerExceptions or similar errors...<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        String msg = "CODE-BUG: Uncaught runtime exception: " + procedure;<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        LOG.error(msg, e);<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        procedure.setFailure(new RemoteProcedureException(msg, e));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span><a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>      if (!procedure.isFailed()) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        if (subprocs != null) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>          if (subprocs.length == 1 &amp;&amp; subprocs[0] == procedure) {<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>            // quick-shortcut for a state machine like procedure<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>            subprocs = null;<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            reExecute = true;<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          } else {<a name="line.1353"></a>
-<span class="source

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 4f1b99a..e112613 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="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <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" />
@@ -301,7 +301,7 @@
 <td>2144</td>
 <td>0</td>
 <td>0</td>
-<td>14240</td></tr></table></div>
+<td>14242</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -3011,3996 +3011,4001 @@
 <td>0</td>
 <td>4</td></tr>
 <tr class="b">
+<td><a href="#org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.java">org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>1</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.MetricsAssignmentManagerSourceImpl.java">org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.MetricsMaster.java">org/apache/hadoop/hbase/master/MetricsMaster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.MetricsMasterProcSource.java">org/apache/hadoop/hbase/master/MetricsMasterProcSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.MetricsMasterSourceImpl.java">org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.MetricsMasterWrapperImpl.java">org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.RackManager.java">org/apache/hadoop/hbase/master/RackManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.RegionPlacementMaintainer.java">org/apache/hadoop/hbase/master/RegionPlacementMaintainer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>198</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.RegionPlan.java">org/apache/hadoop/hbase/master/RegionPlan.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.RegionState.java">org/apache/hadoop/hbase/master/RegionState.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>96</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.RegionStateStore.java">org/apache/hadoop/hbase/master/RegionStateStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.RegionStates.java">org/apache/hadoop/hbase/master/RegionStates.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>28</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.ServerListener.java">org/apache/hadoop/hbase/master/ServerListener.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.ServerManager.java">org/apache/hadoop/hbase/master/ServerManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>36</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.SnapshotOfRegionAssignmentFromMeta.java">org/apache/hadoop/hbase/master/SnapshotOfRegionAssignmentFromMeta.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.SnapshotSentinel.java">org/apache/hadoop/hbase/master/SnapshotSentinel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.SplitLogManager.java">org/apache/hadoop/hbase/master/SplitLogManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>22</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.TableNamespaceManager.java">org/apache/hadoop/hbase/master/TableNamespaceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.TableStateManager.java">org/apache/hadoop/hbase/master/TableStateManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.UnAssignCallable.java">org/apache/hadoop/hbase/master/UnAssignCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>77</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.balancer.ClusterLoadState.java">org/apache/hadoop/hbase/master/balancer/ClusterLoadState.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory.java">org/apache/hadoop/hbase/master/balancer/LoadBalancerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.balancer.MetricsBalancerSourceImpl.java">org/apache/hadoop/hbase/master/balancer/MetricsBalancerSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.balancer.MetricsStochasticBalancerSourceImpl.java">org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancerSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.balancer.RegionInfoComparator.java">org/apache/hadoop/hbase/master/balancer/RegionInfoComparator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.balancer.RegionLocationFinder.java">org/apache/hadoop/hbase/master/balancer/RegionLocationFinder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.balancer.ServerAndLoad.java">org/apache/hadoop/hbase/master/balancer/ServerAndLoad.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.balancer.SimpleLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>37</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>29</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.cleaner.BaseFileCleanerDelegate.java">org/apache/hadoop/hbase/master/cleaner/BaseFileCleanerDelegate.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.cleaner.BaseLogCleanerDelegate.java">org/apache/hadoop/hbase/master/cleaner/BaseLogCleanerDelegate.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.cleaner.CleanerChore.java">org/apache/hadoop/hbase/master/cleaner/CleanerChore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.cleaner.FileCleanerDelegate.java">org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.cleaner.HFileCleaner.java">org/apache/hadoop/hbase/master/cleaner/HFileCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.cleaner.HFileLinkCleaner.java">org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.cleaner.ReplicationZKNodeCleaner.java">org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner.java">org/apache/hadoop/hbase/master/cleaner/TimeToLiveHFileCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner.java">org/apache/hadoop/hbase/master/cleaner/TimeToLiveLogCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.locking.LockManager.java">org/apache/hadoop/hbase/master/locking/LockManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.locking.LockProcedure.java">org/apache/hadoop/hbase/master/locking/LockProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.normalizer.MergeNormalizationPlan.java">org/apache/hadoop/hbase/master/normalizer/MergeNormalizationPlan.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore.java">org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.normalizer.SplitNormalizationPlan.java">org/apache/hadoop/hbase/master/normalizer/SplitNormalizationPlan.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.AbstractStateMachineNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.AbstractStateMachineTableProcedure.java">org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.AddColumnFamilyProcedure.java">org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>30</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.CloneSnapshotProcedure.java">org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>25</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.java">org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.DeleteColumnFamilyProcedure.java">org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>34</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>28</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure.java">org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.DisableTableProcedure.java">org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>43</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.EnableTableProcedure.java">org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>41</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.MasterDDLOperationHelper.java">org/apache/hadoop/hbase/master/procedure/MasterDDLOperationHelper.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv.java">org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.java">org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>25</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.java">org/apache/hadoop/hbase/master/procedure/MasterProcedureUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.MergeTableRegionsProcedure.java">org/apache/hadoop/hbase/master/procedure/MergeTableRegionsProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>93</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.ModifyColumnFamilyProcedure.java">org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>30</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.ModifyNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure.java">org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>44</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.ProcedureSyncWait.java">org/apache/hadoop/hbase/master/procedure/ProcedureSyncWait.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>23</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.RestoreSnapshotProcedure.java">org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure.java">org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>94</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.SplitTableRegionProcedure.java">org/apache/hadoop/hbase/master/procedure/SplitTableRegionProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>81</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure.java">org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.replication.ReplicationManager.java">org/apache/hadoop/hbase/master/replication/ReplicationManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.snapshot.DisabledTableSnapshotHandler.java">org/apache/hadoop/hbase/master/snapshot/DisabledTableSnapshotHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.snapshot.EnabledTableSnapshotHandler.java">org/apache/hadoop/hbase/master/snapshot/EnabledTableSnapshotHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.snapshot.MasterSnapshotVerifier.java">org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.snapshot.SnapshotFileCache.java">org/apache/hadoop/hbase/master/snapshot/SnapshotFileCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.snapshot.SnapshotHFileCleaner.java">org/apache/hadoop/hbase/master/snapshot/SnapshotHFileCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.snapshot.SnapshotManager.java">org/apache/hadoop/hbase/master/snapshot/SnapshotManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.master.snapshot.TakeSnapshotHandler.java">org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.metrics.BaseSourceImpl.java">org/apache/hadoop/hbase/metrics/BaseSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.metrics.MetricRegistriesLoader.java">org/apache/hadoop/hbase/metrics/MetricRegistriesLoader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.metrics.MetricSet.java">org/apache/hadoop/hbase/metrics/MetricSet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.metrics.impl.DropwizardMeter.java">org/apache/hadoop/hbase/metrics/impl/DropwizardMeter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.metrics.impl.GlobalMetricRegistriesAdapter.java">org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.metrics.impl.RefCountingMap.java">org/apache/hadoop/hbase/metrics/impl/RefCountingMap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mob.CachedMobFile.java">org/apache/hadoop/hbase/mob/CachedMobFile.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mob.DefaultMobStoreCompactor.java">org/apache/hadoop/hbase/mob/DefaultMobStoreCompactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mob.DefaultMobStoreFlusher.java">org/apache/hadoop/hbase/mob/DefaultMobStoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mob.MobFile.java">org/apache/hadoop/hbase/mob/MobFile.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mob.MobFileCache.java">org/apache/hadoop/hbase/mob/MobFileCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mob.MobUtils.java">org/apache/hadoop/hbase/mob/MobUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mob.compactions.MobCompactor.java">org/apache/hadoop/hbase/mob/compactions/MobCompactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mob.compactions.PartitionedMobCompactionRequest.java">org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactionRequest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mob.compactions.PartitionedMobCompactor.java">org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.monitoring.LogMonitoring.java">org/apache/hadoop/hbase/monitoring/LogMonitoring.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.monitoring.MemoryBoundedLogMessageBuffer.java">org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.monitoring.MonitoredRPCHandlerImpl.java">org/apache/hadoop/hbase/monitoring/MonitoredRPCHandlerImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.monitoring.MonitoredTaskImpl.java">org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.monitoring.StateDumpServlet.java">org/apache/hadoop/hbase/monitoring/StateDumpServlet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.monitoring.TaskMonitor.java">org/apache/hadoop/hbase/monitoring/TaskMonitor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.monitoring.ThreadMonitoring.java">org/apache/hadoop/hbase/monitoring/ThreadMonitoring.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.namespace.NamespaceStateManager.java">org/apache/hadoop/hbase/namespace/NamespaceStateManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.namespace.NamespaceTableAndRegionInfo.java">org/apache/hadoop/hbase/namespace/NamespaceTableAndRegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.net.Address.java">org/apache/hadoop/hbase/net/Address.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.nio.ByteBuff.java">org/apache/hadoop/hbase/nio/ByteBuff.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.nio.MultiByteBuff.java">org/apache/hadoop/hbase/nio/MultiByteBuff.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>30</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.nio.SingleByteBuff.java">org/apache/hadoop/hbase/nio/SingleByteBuff.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure.MasterProcedureManager.java">org/apache/hadoop/hbase/procedure/MasterProcedureManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.Procedure.java">org/apache/hadoop/hbase/procedure/Procedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure.ProcedureCoordinator.java">org/apache/hadoop/hbase/procedure/ProcedureCoordinator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.ProcedureCoordinatorRpcs.java">org/apache/hadoop/hbase/procedure/ProcedureCoordinatorRpcs.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure.ProcedureManagerHost.java">org/apache/hadoop/hbase/procedure/ProcedureManagerHost.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.ProcedureMember.java">org/apache/hadoop/hbase/procedure/ProcedureMember.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs.java">org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.RegionServerProcedureManager.java">org/apache/hadoop/hbase/procedure/RegionServerProcedureManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure.Subprocedure.java">org/apache/hadoop/hbase/procedure/Subprocedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.ZKProcedureCoordinator.java">org/apache/hadoop/hbase/procedure/ZKProcedureCoordinator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure.ZKProcedureMemberRpcs.java">org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.ZKProcedureUtil.java">org/apache/hadoop/hbase/procedure/ZKProcedureUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager.java">org/apache/hadoop/hbase/procedure/flush/MasterFlushTableProcedureManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.flush.RegionServerFlushTableProcedureManager.java">org/apache/hadoop/hbase/procedure/flush/RegionServerFlushTableProcedureManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.java">org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure2.BadProcedureException.java">org/apache/hadoop/hbase/procedure2/BadProcedureException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure2.LockAndQueue.java">org/apache/hadoop/hbase/procedure2/LockAndQueue.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure2.Procedure.java">org/apache/hadoop/hbase/procedure2/Procedure.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>4</td></tr>
-<tr class="a">
+<td>5</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure2.ProcedureDeque.java">org/apache/hadoop/hbase/procedure2/ProcedureDeque.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure2.ProcedureExecutor.java">org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>26</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure2.ProcedureUtil.java">org/apache/hadoop/hbase/procedure2/ProcedureUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure2.RemoteProcedureException.java">org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure2.RootProcedureState.java">org/apache/hadoop/hbase/procedure2/RootProcedureState.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure2.StateMachineProcedure.java">org/apache/hadoop/hbase/procedure2/StateMachineProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <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>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure2.store.ProcedureStoreBase.java">org/apache/hadoop/hbase/procedure2/store/ProcedureStoreBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure2.store.ProcedureStoreTracker.java">org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <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>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormat.java">org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormat.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure2.store.wal.ProcedureWALFormatReader.java">org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <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>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure2.util.DelayedUtil.java">org/apache/hadoop/hbase/procedure2/util/DelayedUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<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>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.protobuf.ProtobufMagic.java">org/apache/hadoop/hbase/protobuf/ProtobufMagic.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.protobuf.ProtobufUtil.java">org/apache/hadoop/hbase/protobuf/ProtobufUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>103</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.protobuf.ReplicationProtbufUtil.java">org/apache/hadoop/hbase/protobuf/ReplicationProtbufUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.quotas.AverageIntervalRateLimiter.java">org/apache/hadoop/hbase/quotas/AverageIntervalRateLimiter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.DefaultOperationQuota.java">org/apache/hadoop/hbase/quotas/DefaultOperationQuota.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.quotas.FixedIntervalRateLimiter.java">org/apache/hadoop/hbase/quotas/FixedIntervalRateLimiter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.MasterQuotaManager.java">org/apache/hadoop/hbase/quotas/MasterQuotaManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.quotas.NoopOperationQuota.java">org/apache/hadoop/hbase/quotas/NoopOperationQuota.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.NoopQuotaLimiter.java">org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.quotas.QuotaCache.java">org/apache/hadoop/hbase/quotas/QuotaCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.QuotaLimiter.java">org/apache/hadoop/hbase/quotas/QuotaLimiter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.quotas.QuotaLimiterFactory.java">org/apache/hadoop/hbase/quotas/QuotaLimiterFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.QuotaRetriever.java">org/apache/hadoop/hbase/quotas/QuotaRetriever.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.quotas.QuotaSettings.java">org/apache/hadoop/hbase/quotas/QuotaSettings.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.QuotaSettingsFactory.java">org/apache/hadoop/hbase/quotas/QuotaSettingsFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.quotas.QuotaTableUtil.java">org/apache/hadoop/hbase/quotas/QuotaTableUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.QuotaUtil.java">org/apache/hadoop/hbase/quotas/QuotaUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.quotas.RateLimiter.java">org/apache/hadoop/hbase/quotas/RateLimiter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.RegionServerQuotaManager.java">org/apache/hadoop/hbase/quotas/RegionServerQuotaManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.quotas.ThrottleSettings.java">org/apache/hadoop/hbase/quotas/ThrottleSettings.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.ThrottlingException.java">org/apache/hadoop/hbase/quotas/ThrottlingException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.quotas.TimeBasedLimiter.java">org/apache/hadoop/hbase/quotas/TimeBasedLimiter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.UserQuotaState.java">org/apache/hadoop/hbase/quotas/UserQuotaState.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.AbstractMemStore.java">org/apache/hadoop/hbase/regionserver/AbstractMemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.AbstractMultiFileWriter.java">org/apache/hadoop/hbase/regionserver/AbstractMultiFileWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.AnnotationReadingPriorityFunction.java">org/apache/hadoop/hbase/regionserver/AnnotationReadingPriorityFunction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.BaseRowProcessor.java">org/apache/hadoop/hbase/regionserver/BaseRowProcessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CellArrayMap.java">org/apache/hadoop/hbase/regionserver/CellArrayMap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CellFlatMap.java">org/apache/hadoop/hbase/regionserver/CellFlatMap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CellSet.java">org/apache/hadoop/hbase/regionserver/CellSet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CellSink.java">org/apache/hadoop/hbase/regionserver/CellSink.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Chunk.java">org/apache/hadoop/hbase/regionserver/Chunk.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CompactSplitThread.java">org/apache/hadoop/hbase/regionserver/CompactSplitThread.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CompactedHFilesDischargeHandler.java">org/apache/hadoop/hbase/regionserver/CompactedHFilesDischargeHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CompactedHFilesDischarger.java">org/apache/hadoop/hbase/regionserver/CompactedHFilesDischarger.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CompactingMemStore.java">org/apache/hadoop/hbase/regionserver/CompactingMemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CompactionPipeline.java">org/apache/hadoop/hbase/regionserver/CompactionPipeline.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CompactionRequestor.java">org/apache/hadoop/hbase/regionserver/CompactionRequestor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CompactionTool.java">org/apache/hadoop/hbase/regionserver/CompactionTool.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CompositeImmutableSegment.java">org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.DefaultHeapMemoryTuner.java">org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>31</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.DefaultMemStore.java">org/apache/hadoop/hbase/regionserver/DefaultMemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.DefaultStoreFileManager.java">org/apache/hadoop/hbase/regionserver/DefaultStoreFileManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.DefaultStoreFlusher.java">org/apache/hadoop/hbase/regionserver/DefaultStoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/DisabledRegionSplitPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.FavoredNodesForRegion.java">org/apache/hadoop/hbase/regionserver/FavoredNodesForRegion.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.FifoRpcSchedulerFactory.java">org/apache/hadoop/hbase/regionserver/FifoRpcSchedulerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.FlushAllLargeStoresPolicy.java">org/apache/hadoop/hbase/regionserver/FlushAllLargeStoresPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.FlushNonSloppyStoresFirstPolicy.java">org/apache/hadoop/hbase/regionserver/FlushNonSloppyStoresFirstPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.FlushPolicyFactory.java">org/apache/hadoop/hbase/regionserver/FlushPolicyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.FlushRequestListener.java">org/apache/hadoop/hbase/regionserver/FlushRequestListener.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.FlushRequester.java">org/apache/hadoop/hbase/regionserver/FlushRequester.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HMobStore.java">org/apache/hadoop/hbase/regionserver/HMobStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HRegion.java">org/apache/hadoop/hbase/regionserver/HRegion.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>204</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HRegionFileSystem.java">org/apache/hadoop/hbase/regionserver/HRegionFileSystem.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>46</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HRegionServer.java">org/apache/hadoop/hbase/regionserver/HRegionServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>128</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.java">org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HStore.java">org/apache/hadoop/hbase/regionserver/HStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>53</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.java">org/apache/hadoop/hbase/regionserver/HeapMemoryManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HeapMemoryTuner.java">org/apache/hadoop/hbase/regionserver/HeapMemoryTuner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ImmutableSegment.java">org/apache/hadoop/hbase/regionserver/ImmutableSegment.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.IncreasingToUpperBoundRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.InternalScan.java">org/apache/hadoop/hbase/regionserver/InternalScan.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.InternalScanner.java">org/apache/hadoop/hbase/regionserver/InternalScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.KeyPrefixRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/KeyPrefixRegionSplitPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.KeyValueHeap.java">org/apache/hadoop/hbase/regionserver/KeyValueHeap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.KeyValueScanner.java">org/apache/hadoop/hbase/regionserver/KeyValueScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.LeaseException.java">org/apache/hadoop/hbase/regionserver/LeaseException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Leases.java">org/apache/hadoop/hbase/regionserver/Leases.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.LogRoller.java">org/apache/hadoop/hbase/regionserver/LogRoller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MemStore.java">org/apache/hadoop/hbase/regionserver/MemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MemStoreChunkPool.java">org/apache/hadoop/hbase/regionserver/MemStoreChunkPool.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MemStoreCompactor.java">org/apache/hadoop/hbase/regionserver/MemStoreCompactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MemStoreCompactorSegmentsIterator.java">org/apache/hadoop/hbase/regionserver/MemStoreCompactorSegmentsIterator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MemStoreFlusher.java">org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>31</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MemStoreLABImpl.java">org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MemStoreMergerSegmentsIterator.java">org/apache/hadoop/hbase/regionserver/MemStoreMergerSegmentsIterator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MemStoreSegmentsIterator.java">org/apache/hadoop/hbase/regionserver/MemStoreSegmentsIterator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MemStoreSnapshot.java">org/apache/hadoop/hbase/regionserver/MemStoreSnapshot.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsHeapMemoryManagerSource.java">org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsRegion.java">org/apache/hadoop/hbase/regionserver/MetricsRegion.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsRegionServer.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactoryImpl.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceImpl.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapperImpl.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsRegionWrapperImpl.java">org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTable.java">org/apache/hadoop/hbase/regionserver/MetricsTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTableAggregateSourceImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTableSourceImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregateImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>20</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress.java">org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MultiRowMutationProcessor.java">org/apache/hadoop/hbase/regionserver/MultiRowMutationProcessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.java">org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MutableSegment.java">org/apache/hadoop/hbase/regionserver/MutableSegment.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.NoOpHeapMemoryTuner.java">org/apache/hadoop/hbase/regionserver/NoOpHeapMemoryTuner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.java">org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.java">org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.OffheapChunk.java">org/apache/hadoop/hbase/regionserver/OffheapChunk.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.OnheapChunk.java">org/apache/hadoop/hbase/regionserver/OnheapChunk.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.OnlineRegions.java">org/apache/hadoop/hbase/regionserver/OnlineRegions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.OperationStatus.java">org/apache/hadoop/hbase/regionserver/OperationStatus.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RSDumpServlet.java">org/apache/hadoop/hbase/regionserver/RSDumpServlet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RSRpcServices.java">org/apache/hadoop/hbase/regionserver/RSRpcServices.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>117</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RSStatusServlet.java">org/apache/hadoop/hbase/regionserver/RSStatusServlet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Region.java">org/apache/hadoop/hbase/regionserver/Region.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>61</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.java">org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>185</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionScanner.java">org/apache/hadoop/hbase/regionserver/RegionScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost.java">org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServerServices.java">org/apache/hadoop/hbase/regionserver/RegionServerServices.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServicesForStores.java">org/apache/hadoop/hbase/regionserver/RegionServicesForStores.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReplicationService.java">org/apache/hadoop/hbase/regionserver/ReplicationService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReplicationSinkService.java">org/apache/hadoop/hbase/regionserver/ReplicationSinkService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.java">org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.java">org/apache/hadoop/hbase/regionserver/ReversedRegionScannerImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReversedStoreScanner.java">org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RowProcessor.java">org/apache/hadoop/hbase/regionserver/RowProcessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RpcSchedulerFactory.java">org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ScanInfo.java">org/apache/hadoop/hbase/regionserver/ScanInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ScannerContext.java">org/apache/hadoop/hbase/regionserver/ScannerContext.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager.java">org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Segment.java">org/apache/hadoop/hbase/regionserver/Segment.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SegmentFactory.java">org/apache/hadoop/hbase/regionserver/SegmentFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SegmentScanner.java">org/apache/hadoop/hbase/regionserver/SegmentScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ServerNonceManager.java">org/apache/hadoop/hbase/regionserver/ServerNonceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ShipperListener.java">org/apache/hadoop/hbase/regionserver/ShipperListener.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ShutdownHook.java">org/apache/hadoop/hbase/regionserver/ShutdownHook.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SimpleRpcSchedulerFactory.java">org/apache/hadoop/hbase/regionserver/SimpleRpcSchedulerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SplitLogWorker.java">org/apache/hadoop/hbase/regionserver/SplitLogWorker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SplitRequest.java">org/apache/hadoop/hbase/regionserver/SplitRequest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SteppingSplitPolicy.java">org/apache/hadoop/hbase/regionserver/SteppingSplitPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Store.java">org/apache/hadoop/hbase/regionserver/Store.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreEngine.java">org/apache/hadoop/hbase/regionserver/StoreEngine.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFile.java">org/apache/hadoop/hbase/regionserver/StoreFile.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileInfo.java">org/apache/hadoop/hbase/regionserver/StoreFileInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>23</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileManager.java">org/apache/hadoop/hbase/regionserver/StoreFileManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileReader.java">org/apache/hadoop/hbase/regionserver/StoreFileReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileScanner.java">org/apache/hadoop/hbase/regionserver/StoreFileScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileWriter.java">org/apache/hadoop/hbase/regionserver/StoreFileWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFlushContext.java">org/apache/hadoop/hbase/regionserver/StoreFlushContext.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFlusher.java">org/apache/hadoop/hbase/regionserver/StoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreScanner.java">org/apache/hadoop/hbase/regionserver/StoreScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>55</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreUtils.java">org/apache/hadoop/hbase/regionserver/StoreUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StorefileRefresherChore.java">org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeMultiFileWriter.java">org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreConfig.java">org/apache/hadoop/hbase/regionserver/StripeStoreConfig.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreEngine.java">org/apache/hadoop/hbase/regionserver/StripeStoreEngine.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreFileManager.java">org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreFlusher.java">org/apache/hadoop/hbase/regionserver/StripeStoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TimeRangeTracker.java">org/apache/hadoop/hbase/regionserver/TimeRangeTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.CompactionContext.java">org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.CompactionPolicy.java">org/apache/hadoop/hbase/regionserver/compactions/CompactionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.CompactionProgress.java">org/apache/hadoop/hbase/regionserver/compactions/CompactionProgress.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest.java">org/apache/hadoop/hbase/regionserver/compactions/CompactionRequest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.Compactor.java">org/apache/hadoop/hbase/regionserver/compactions/Compactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.CurrentHourProvider.java">org/apache/hadoop/hbase/regionserver/compactions/CurrentHourProvider.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.java">org/apache/hadoop/hbase/regionserver/compactions/DefaultCompactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.OffPeakHours.java">org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.SortedCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/compactions/SortedCompactionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.StripeCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/compactions/StripeCompactionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.CloseMetaHandler.java">org/apache/hadoop/hbase/regionserver/handler/CloseMetaHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.CloseRegionHandler.java">org/apache/hadoop/hbase/regionserver/handler/CloseRegionHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.OpenMetaHandler.java">org/apache/hadoop/hbase/regionserver/handler/OpenMetaHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.OpenPriorityRegionHandler.java">org/apache/hadoop/hbase/regionserver/handler/OpenPriorityRegionHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.java">org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.ParallelSeekHandler.java">org/apache/hadoop/hbase/regionserver/handler/ParallelSeekHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.RegionReplicaFlushHandler.java">org/apache/hadoop/hbase/regionserver/handler/RegionReplicaFlushHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.WALSplitterHandler.java">org/apache/hadoop/hbase/regionserver/handler/WALSplitterHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.ColumnTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.DeleteTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.ExplicitColumnTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/ExplicitColumnTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.LegacyScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/LegacyScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.ScanDeleteTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/ScanDeleteTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.snapshot.FlushSnapshotSubprocedure.java">org/apache/hadoop/hbase/regionserver/snapshot/FlushSnapshotSubprocedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.snapshot.RegionServerSnapshotManager.java">org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.throttle.PressureAwareThroughputController.java">org/apache/hadoop/hbase/regionserver/throttle/PressureAwareThroughputController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.java">org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.AbstractProtobufLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.java">org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.CompressionContext.java">org/apache/hadoop/hbase/regionserver/wal/CompressionContext.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.Compressor.java">org/apache/hadoop/hbase/regionserver/wal/Compressor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.FSHLog.java">org/apache/hadoop/hbase/regionserver/wal/FSHLog.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.FSWALEntry.java">org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.FailedLogCloseException.java">org/apache/hadoop/hbase/regionserver/wal/FailedLogCloseException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.FailedSyncBeforeLogCloseException.java">org/apache/hadoop/hbase/regionserver/wal/FailedSyncBeforeLogCloseException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.HLogPrettyPrinter.java">org/apache/hadoop/hbase/regionserver/wal/HLogPrettyPrinter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.MetricsWAL.java">org/apache/hadoop/hbase/regionserver/wal/MetricsWAL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.MetricsWALEditsReplay.java">org/apache/hadoop/hbase/regionserver/wal/MetricsWALEditsReplay.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.MetricsWALSourceImpl.java">org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.java">org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>26</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/ProtobufLogWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.ReaderBase.java">org/apache/hadoop/hbase/regionserver/wal/ReaderBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SecureAsyncProtobufLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogReader.java">org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SecureWALCellCodec.java">org/apache/hadoop/hbase/regionserver/wal/SecureWALCellCodec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SequenceIdAccounting.java">org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALActionsListener.java">org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALCellCodec.java">org/apache/hadoop/hbase/regionserver/wal/WALCellCodec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALCoprocessorHost.java">org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALEdit.java">org/apache/hadoop/hbase/regionserver/wal/WALEdit.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALEditsReplaySink.java">org/apache/hadoop/hbase/regionserver/wal/WALEditsReplaySink.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALUtil.java">org/apache/hadoop/hbase/regionserver/wal/WALUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.BaseReplicationEndpoint.java">org/apache/hadoop/hbase/replication/BaseReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.BulkLoadCellFilter.java">org/apache/hadoop/hbase/replication/BulkLoadCellFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ChainWALEntryFilter.java">org/apache/hadoop/hbase/replication/ChainWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ClusterMarkingEntryFilter.java">org/apache/hadoop/hbase/replication/ClusterMarkingEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.HBaseReplicationEndpoint.java">org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.NamespaceTableCfWALEntryFilter.java">org/apache/hadoop/hbase/replication/NamespaceTableCfWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationEndpoint.java">org/apache/hadoop/hbase/replication/ReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationFactory.java">org/apache/hadoop/hbase/replication/ReplicationFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeerZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationPeerZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeers.java">org/apache/hadoop/hbase/replication/ReplicationPeers.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeersZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueueInfo.java">org/apache/hadoop/hbase/replication/ReplicationQueueInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueues.java">org/apache/hadoop/hbase/replication/ReplicationQueues.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueuesClient.java">org/apache/hadoop/hbase/replication/ReplicationQueuesClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueuesClientZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationQueuesClientZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueuesZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationStateZKBase.java">org/apache/hadoop/hbase/replication/ReplicationStateZKBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationTableBase.java">org/apache/hadoop/hbase/replication/ReplicationTableBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationTracker.java">org/apache/hadoop/hbase/replication/ReplicationTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationTrackerZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ScopeWALEntryFilter.java">org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TableBasedReplicationQueuesClientImpl.java">org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesClientImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TableBasedReplicationQueuesImpl.java">org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.WALCellFilter.java">org/apache/hadoop/hbase/replication/WALCellFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.WALEntryFilter.java">org/apache/hadoop/hbase/replication/WALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner.java">org/apache/hadoop/hbase/replication/master/ReplicationHFileCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner.java">org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.master.TableCFsUpdater.java">org/apache/hadoop/hbase/replication/master/TableCFsUpdater.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.DumpReplicationQueues.java">org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint.java">org/apache/hadoop/hbase/replication/regionserver/HBaseInterClusterReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationGlobalSourceSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSinkSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSourceSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSourceSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsSink.java">org/apache/hadoop/hbase/replication/regionserver/MetricsSink.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.RegionReplicaReplicationEndpoint.java">org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.Replication.java">org/apache/hadoop/hbase/replication/regionserver/Replication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationLoad.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationObserver.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationObserver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSink.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSinkManager.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSource.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceInterface.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceManager.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceWALReaderThread.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReaderThread.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationThrottler.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationThrottler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.WALEntryStream.java">org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.Constants.java">org/apache/hadoop/hbase/rest/Constants.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.ExistsResource.java">org/apache/hadoop/hbase/rest/ExistsResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.MetricsREST.java">org/apache/hadoop/hbase/rest/MetricsREST.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.MetricsRESTSource.java">org/apache/hadoop/hbase/rest/MetricsRESTSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.MetricsRESTSourceImpl.java">org/apache/hadoop/hbase/r

<TRUNCATED>

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

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 a0b9df1..8a5684c 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/class-use/NonceKey.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/class-use/NonceKey.html
@@ -160,7 +160,7 @@
              <a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;exception,
              long&nbsp;lastUpdate,
-             long&nbsp;startTime,
+             long&nbsp;submittedTime,
              byte[]&nbsp;result)</code>&nbsp;</td>
 </tr>
 </tbody>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 b91439c..8cf4182 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
@@ -47,7 +47,7 @@
 <span class="sourceLineNo">039</span>  private final NonceKey nonceKey;<a name="line.39"></a>
 <span class="sourceLineNo">040</span>  private final IOException exception;<a name="line.40"></a>
 <span class="sourceLineNo">041</span>  private final long lastUpdate;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>  private final long startTime;<a name="line.42"></a>
+<span class="sourceLineNo">042</span>  private final long submittedTime;<a name="line.42"></a>
 <span class="sourceLineNo">043</span>  private final byte[] result;<a name="line.43"></a>
 <span class="sourceLineNo">044</span><a name="line.44"></a>
 <span class="sourceLineNo">045</span>  private long clientAckTime = -1;<a name="line.45"></a>
@@ -62,7 +62,7 @@
 <span class="sourceLineNo">054</span>      final NonceKey nonceKey,<a name="line.54"></a>
 <span class="sourceLineNo">055</span>      final IOException exception,<a name="line.55"></a>
 <span class="sourceLineNo">056</span>      final long lastUpdate,<a name="line.56"></a>
-<span class="sourceLineNo">057</span>      final long startTime,<a name="line.57"></a>
+<span class="sourceLineNo">057</span>      final long submittedTime,<a name="line.57"></a>
 <span class="sourceLineNo">058</span>      final byte[] result) {<a name="line.58"></a>
 <span class="sourceLineNo">059</span>    this.procId = procId;<a name="line.59"></a>
 <span class="sourceLineNo">060</span>    this.procName = procName;<a name="line.60"></a>
@@ -71,7 +71,7 @@
 <span class="sourceLineNo">063</span>    this.parentId = parentId;<a name="line.63"></a>
 <span class="sourceLineNo">064</span>    this.nonceKey = nonceKey;<a name="line.64"></a>
 <span class="sourceLineNo">065</span>    this.lastUpdate = lastUpdate;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    this.startTime = startTime;<a name="line.66"></a>
+<span class="sourceLineNo">066</span>    this.submittedTime = submittedTime;<a name="line.66"></a>
 <span class="sourceLineNo">067</span><a name="line.67"></a>
 <span class="sourceLineNo">068</span>    // If the procedure is completed, we should treat exception and result differently<a name="line.68"></a>
 <span class="sourceLineNo">069</span>    this.exception = exception;<a name="line.69"></a>
@@ -82,7 +82,7 @@
 <span class="sourceLineNo">074</span>      justification="Intentional; calling super class clone doesn't make sense here.")<a name="line.74"></a>
 <span class="sourceLineNo">075</span>  public ProcedureInfo clone() {<a name="line.75"></a>
 <span class="sourceLineNo">076</span>    return new ProcedureInfo(procId, procName, procOwner, procState, parentId, nonceKey,<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      exception, lastUpdate, startTime, result);<a name="line.77"></a>
+<span class="sourceLineNo">077</span>      exception, lastUpdate, submittedTime, result);<a name="line.77"></a>
 <span class="sourceLineNo">078</span>  }<a name="line.78"></a>
 <span class="sourceLineNo">079</span><a name="line.79"></a>
 <span class="sourceLineNo">080</span>  @Override<a name="line.80"></a>
@@ -104,10 +104,10 @@
 <span class="sourceLineNo">096</span>    sb.append(procState);<a name="line.96"></a>
 <span class="sourceLineNo">097</span><a name="line.97"></a>
 <span class="sourceLineNo">098</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    sb.append(", startTime=");<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    sb.append(StringUtils.formatTime(now - startTime));<a name="line.100"></a>
+<span class="sourceLineNo">099</span>    sb.append(", submittedTime=");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    sb.append(StringUtils.formatTime(now - submittedTime));<a name="line.100"></a>
 <span class="sourceLineNo">101</span>    sb.append(" ago, lastUpdate=");<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    sb.append(StringUtils.formatTime(now - startTime));<a name="line.102"></a>
+<span class="sourceLineNo">102</span>    sb.append(StringUtils.formatTime(now - submittedTime));<a name="line.102"></a>
 <span class="sourceLineNo">103</span>    sb.append(" ago");<a name="line.103"></a>
 <span class="sourceLineNo">104</span><a name="line.104"></a>
 <span class="sourceLineNo">105</span>    if (isFailed()) {<a name="line.105"></a>
@@ -176,8 +176,8 @@
 <span class="sourceLineNo">168</span>    return result;<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>  public long getStartTime() {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    return startTime;<a name="line.172"></a>
+<span class="sourceLineNo">171</span>  public long getSubmittedTime() {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    return submittedTime;<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>  public long getLastUpdate() {<a name="line.175"></a>
@@ -185,7 +185,7 @@
 <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>  public long executionTime() {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    return lastUpdate - startTime;<a name="line.180"></a>
+<span class="sourceLineNo">180</span>    return lastUpdate - submittedTime;<a name="line.180"></a>
 <span class="sourceLineNo">181</span>  }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
 <span class="sourceLineNo">183</span>  @InterfaceAudience.Private<a name="line.183"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index efa061f..18e7371 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "2.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "da5fb27eabed4a4b4d251be973ee945fb52895bf";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "0cd4cec5d24b5e7194a903e4d900f5558ed8b9a7";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Thu Apr 13 21:10:54 UTC 2017";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Sat Apr 15 14:38:43 UTC 2017";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "00e895b43b730ab6c310b237457e4b31";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "10edd451996c9718f54bf7c0638a70c1";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.AbortProcedureFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.AbortProcedureFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.AbortProcedureFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.AbortProcedureFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.AbortProcedureFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.AddColumnFamilyFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.AddColumnFamilyFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.AddColumnFamilyFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.AddColumnFamilyFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.AddColumnFamilyFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.CreateTableFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.CreateTableFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.CreateTableFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.CreateTableFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.CreateTableFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DeleteColumnFamilyFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DeleteColumnFamilyFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DeleteColumnFamilyFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DeleteColumnFamilyFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DeleteColumnFamilyFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DeleteTableFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DeleteTableFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DeleteTableFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DeleteTableFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DeleteTableFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DisableTableFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DisableTableFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DisableTableFuture.html
index c45be1c..b798d4b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DisableTableFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/HBaseAdmin.DisableTableFuture.html
@@ -2122,7 +2122,7 @@
 <span class="sourceLineNo">2114</span>        procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>            procProto.hasException()?<a name="line.2115"></a>
 <span class="sourceLineNo">2116</span>                ForeignExceptionUtil.toIOException(procProto.getException()): null,<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.2117"></a>
+<span class="sourceLineNo">2117</span>            procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>            procProto.hasResult()? procProto.getResult().toByteArray() : null);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>  }<a name="line.2119"></a>
 <span class="sourceLineNo">2120</span><a name="line.2120"></a>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
index b579a1b..50908b4 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
@@ -349,7 +349,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
index 4c93254..66357c4 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
@@ -414,7 +414,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">g
 etProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/had
 oop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoo
 p/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#
 setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">was
 Executed</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">g
 etProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/ap
 ache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/
 apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hado
 op/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
index 8a1acb4..2582c22 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
@@ -402,7 +402,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
index ade306f..2a639fe 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
@@ -512,7 +512,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/S
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExec
 uted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/h
 base/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/SplitTableRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/SplitTableRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/SplitTableRegionProcedure.html
index 275c601..369f4fc 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/SplitTableRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/SplitTableRegionProcedure.html
@@ -483,7 +483,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html
index a1495ff..0c11099 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.TimeoutExecutorThread.html
@@ -839,1019 +839,1030 @@
 <span class="sourceLineNo">831</span>  private long pushProcedure(final Procedure proc) {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>    final long currentProcId = proc.getProcId();<a name="line.832"></a>
 <span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the rollback stack for the procedure<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    RootProcedureState stack = new RootProcedureState();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    rollbackStack.put(currentProcId, stack);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // Submit the new subprocedures<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    assert !procedures.containsKey(currentProcId);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    procedures.put(currentProcId, proc);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    sendProcedureAddedNotification(currentProcId);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    scheduler.addBack(proc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return proc.getProcId();<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Send an abort notification the specified procedure.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * @param procId the procedure to abort<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  public boolean abort(final long procId) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    return abort(procId, true);<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>   * Send an abort notification the specified procedure.<a name="line.857"></a>
-<span class="sourceLineNo">858</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>   * @param procId the procedure to abort<a name="line.859"></a>
-<span class="sourceLineNo">860</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    final Procedure proc = procedures.get(procId);<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (proc != null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        return false;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return proc.abort(getEnvironment());<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    return false;<a name="line.871"></a>
-<span class="sourceLineNo">872</span>  }<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>  //  Executor query helpers<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  // ==========================================================================<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public Procedure getProcedure(final long procId) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    return procedures.get(procId);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  }<a name="line.879"></a>
-<span class="sourceLineNo">880</span><a name="line.880"></a>
-<span class="sourceLineNo">881</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    final Procedure proc = getProcedure(procId);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (clazz.isInstance(proc)) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      return (T)proc;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    return null;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  public ProcedureInfo getResult(final long procId) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    return completed.get(procId);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>  }<a name="line.891"></a>
-<span class="sourceLineNo">892</span><a name="line.892"></a>
-<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * Return true if the procedure is finished.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * Use getResult() to check the state or get the result data.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @param procId the ID of the procedure to check<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  public boolean isFinished(final long procId) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    return !procedures.containsKey(procId);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>  }<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * Return true if the procedure is started.<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   * @param procId the ID of the procedure to check<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   */<a name="line.908"></a>
-<span class="sourceLineNo">909</span>  public boolean isStarted(final long procId) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    final Procedure proc = procedures.get(procId);<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (proc == null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      return completed.get(procId) != null;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return proc.wasExecuted();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param procId the ID of the procedure to remove<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   */<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public void removeResult(final long procId) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    final ProcedureInfo result = completed.get(procId);<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    if (result == null) {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      if (LOG.isDebugEnabled()) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      }<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      return;<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>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>  }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    ProcedureInfo result = completed.get(procId);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    Procedure proc = null;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    if (result == null) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      proc = procedures.get(procId);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      if (proc == null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        result = completed.get(procId);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    return new Pair(result, proc);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Check if the user is this procedure's owner<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   * @param procId the target procedure<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param user the user<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   * @return true if the user is the owner of the procedure,<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   *   false otherwise or the owner is unknown.<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   */<a name="line.953"></a>
-<span class="sourceLineNo">954</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    if (user == null) return false;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    final Procedure proc = procedures.get(procId);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    if (proc != null) {<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      return proc.getOwner().equals(user.getShortName());<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>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    if (procInfo == null) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>      // At this time, we cannot check the owner of the procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return false;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  }<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>   * List procedures.<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   * @return the procedures in a list<a name="line.973"></a>
-<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      // it could complete after we walk through procedures list and insert into<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      procedureLists.add(e.getValue());<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    }<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return procedureLists;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  // ==========================================================================<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  //  Listeners helpers<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  // ==========================================================================<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    this.listeners.add(listener);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  }<a name="line.995"></a>
-<span class="sourceLineNo">996</span><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    return this.listeners.remove(listener);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>  }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    if (!this.listeners.isEmpty()) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          listener.procedureLoaded(procId);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>        } catch (Throwable e) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<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>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    if (!this.listeners.isEmpty()) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>          listener.procedureAdded(procId);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        } catch (Throwable e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        }<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>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    if (!this.listeners.isEmpty()) {<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>        try {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          listener.procedureFinished(procId);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>        } catch (Throwable e) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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><a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  // ==========================================================================<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  //  Procedure IDs helpers<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  // ==========================================================================<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  private long nextProcId() {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    long procId = lastProcId.incrementAndGet();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    if (procId &lt; 0) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>        procId = lastProcId.get();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>        if (procId &gt;= 0)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>          break;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      while (procedures.containsKey(procId)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        procId = lastProcId.incrementAndGet();<a name="line.1049"></a>
+<span class="sourceLineNo">834</span>    // Update metrics on start of a procedure<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>    // Create the rollback stack for the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    RootProcedureState stack = new RootProcedureState();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    rollbackStack.put(currentProcId, stack);<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // Submit the new subprocedures<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    assert !procedures.containsKey(currentProcId);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    procedures.put(currentProcId, proc);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    sendProcedureAddedNotification(currentProcId);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    scheduler.addBack(proc);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    return proc.getProcId();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Send an abort notification the specified procedure.<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @param procId the procedure to abort<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public boolean abort(final long procId) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    return abort(procId, true);<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>  /**<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   * Send an abort notification the specified procedure.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.861"></a>
+<span class="sourceLineNo">862</span>   * @param procId the procedure to abort<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    final Procedure proc = procedures.get(procId);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    if (proc != null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return false;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>      return proc.abort(getEnvironment());<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    return false;<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>  //  Executor query helpers<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  // ==========================================================================<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  public Procedure getProcedure(final long procId) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    return procedures.get(procId);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    final Procedure proc = getProcedure(procId);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (clazz.isInstance(proc)) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      return (T)proc;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    return null;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>  }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>  public ProcedureInfo getResult(final long procId) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    return completed.get(procId);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>  }<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>   * Return true if the procedure is finished.<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Use getResult() to check the state or get the result data.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @param procId the ID of the procedure to check<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>   */<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public boolean isFinished(final long procId) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    return !procedures.containsKey(procId);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * Return true if the procedure is started.<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * @param procId the ID of the procedure to check<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  public boolean isStarted(final long procId) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    final Procedure proc = procedures.get(procId);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    if (proc == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      return completed.get(procId) != null;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return proc.wasExecuted();<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param procId the ID of the procedure to remove<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  public void removeResult(final long procId) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>    final ProcedureInfo result = completed.get(procId);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    if (result == null) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      if (LOG.isDebugEnabled()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      return;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<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>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    ProcedureInfo result = completed.get(procId);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    Procedure proc = null;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    if (result == null) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      proc = procedures.get(procId);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      if (proc == null) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        result = completed.get(procId);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    return new Pair(result, proc);<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>   * Check if the user is this procedure's owner<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   * @param procId the target procedure<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param user the user<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return true if the user is the owner of the procedure,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   *   false otherwise or the owner is unknown.<a name="line.955"></a>
+<span class="sourceLineNo">956</span>   */<a name="line.956"></a>
+<span class="sourceLineNo">957</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    if (user == null) return false;<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>    final Procedure proc = procedures.get(procId);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    if (proc != null) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      return proc.getOwner().equals(user.getShortName());<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    if (procInfo == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      // At this time, we cannot check the owner of the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      return false;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<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>  /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>   * List procedures.<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * @return the procedures in a list<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      // it could complete after we walk through procedures list and insert into<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      procedureLists.add(e.getValue());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    return procedureLists;<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>  //  Listeners helpers<a name="line.994"></a>
+<span class="sourceLineNo">995</span>  // ==========================================================================<a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    this.listeners.add(listener);<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>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    return this.listeners.remove(listener);<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>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    if (!this.listeners.isEmpty()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          listener.procedureLoaded(procId);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        } catch (Throwable e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    if (!this.listeners.isEmpty()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          listener.procedureAdded(procId);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        } catch (Throwable e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    if (!this.listeners.isEmpty()) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        try {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          listener.procedureFinished(procId);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        } catch (Throwable e) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  // ==========================================================================<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>  //  Procedure IDs helpers<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  // ==========================================================================<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>  private long nextProcId() {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    long procId = lastProcId.incrementAndGet();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    if (procId &lt; 0) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        procId = lastProcId.get();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        if (procId &gt;= 0)<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>          break;<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return procId;<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>  @VisibleForTesting<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  protected long getLastProcId() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return lastProcId.get();<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>  @VisibleForTesting<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span><a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>  // ==========================================================================<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  //  Executions<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  // ==========================================================================<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  private void executeProcedure(final Procedure proc) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    if (rootProcId == null) {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      executeRollback(proc);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      return;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    if (procStack == null) return;<a name="line.1082"></a>
+<span class="sourceLineNo">1051</span>      while (procedures.containsKey(procId)) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        procId = lastProcId.incrementAndGet();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    return procId;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>  @VisibleForTesting<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>  protected long getLastProcId() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    return lastProcId.get();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>  }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  @VisibleForTesting<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>  }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  // ==========================================================================<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>  //  Executions<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  // ==========================================================================<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>  private void executeProcedure(final Procedure proc) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    if (rootProcId == null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      executeRollback(proc);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>      return;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    }<a name="line.1082"></a>
 <span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    do {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      // Try to acquire the execution<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (!procStack.acquire(proc)) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        if (procStack.setRollback()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>            case LOCK_ACQUIRED:<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>                break;<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>            case LOCK_YIELD_WAIT:<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>              procStack.unsetRollback();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>              scheduler.yield(proc);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>              break;<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>            case LOCK_EVENT_WAIT:<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>              procStack.unsetRollback();<a name="line.1097"></a>
+<span class="sourceLineNo">1084</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    if (procStack == null) return;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    do {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>      // Try to acquire the execution<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>      if (!procStack.acquire(proc)) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        if (procStack.setRollback()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>            case LOCK_ACQUIRED:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>            case LOCK_YIELD_WAIT:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>              procStack.unsetRollback();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>              scheduler.yield(proc);<a name="line.1097"></a>
 <span class="sourceLineNo">1098</span>              break;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>            default:<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>              throw new UnsupportedOperationException();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>          }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        } else {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>          // if we can't rollback means that some child is still running.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>          // the rollback will be executed after all the children are done.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          if (!proc.wasExecuted()) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>            switch (executeRollback(proc)) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>              case LOCK_ACQUIRED:<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>                break;<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>              case LOCK_YIELD_WAIT:<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>                scheduler.yield(proc);<a name="line.1111"></a>
+<span class="sourceLineNo">1099</span>            case LOCK_EVENT_WAIT:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>              procStack.unsetRollback();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>              break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>            default:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>              throw new UnsupportedOperationException();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>          // if we can't rollback means that some child is still running.<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>          // the rollback will be executed after all the children are done.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>          if (!proc.wasExecuted()) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>            switch (executeRollback(proc)) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>              case LOCK_ACQUIRED:<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>                break;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>              case LOCK_EVENT_WAIT:<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>                break;<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>              default:<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>                throw new UnsupportedOperationException();<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>        break;<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>      }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span><a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      // Execute the procedure<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      switch (acquireLock(proc)) {<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>        case LOCK_ACQUIRED:<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>          execProcedure(procStack, proc);<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>          releaseLock(proc, false);<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>          break;<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>        case LOCK_YIELD_WAIT:<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          scheduler.yield(proc);<a name="line.1131"></a>
+<span class="sourceLineNo">1113</span>              case LOCK_YIELD_WAIT:<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                scheduler.yield(proc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>              case LOCK_EVENT_WAIT:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                break;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>              default:<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                throw new UnsupportedOperationException();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>            }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        break;<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>      // Execute the procedure<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      switch (acquireLock(proc)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        case LOCK_ACQUIRED:<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>          execProcedure(procStack, proc);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          releaseLock(proc, false);<a name="line.1131"></a>
 <span class="sourceLineNo">1132</span>          break;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        case LOCK_EVENT_WAIT:<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>          // someone will wake us up when the lock is available<a name="line.1134"></a>
+<span class="sourceLineNo">1133</span>        case LOCK_YIELD_WAIT:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          scheduler.yield(proc);<a name="line.1134"></a>
 <span class="sourceLineNo">1135</span>          break;<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        default:<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>          throw new UnsupportedOperationException();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>      procStack.release(proc);<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      // useful to test the procedure recovery.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (testing != null &amp;&amp; !isRunning()) {<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>      if (proc.isSuccess()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>        if (LOG.isDebugEnabled()) {<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        // Finalize the procedure state<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        if (proc.getProcId() == rootProcId) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>          procedureFinished(proc);<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        } else {<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          execCompletionCleanup(proc);<a name="line.1155"></a>
+<span class="sourceLineNo">1136</span>        case LOCK_EVENT_WAIT:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          // someone will wake us up when the lock is available<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>          break;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        default:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>          throw new UnsupportedOperationException();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      procStack.release(proc);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // useful to test the procedure recovery.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      if (testing != null &amp;&amp; !isRunning()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        break;<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>      if (proc.isSuccess()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        // update metrics on finishing the procedure<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        if (LOG.isDebugEnabled()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1155"></a>
 <span class="sourceLineNo">1156</span>        }<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>        break;<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      }<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    } while (procStack.isFailed());<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    final TEnvironment env = getEnvironment();<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      return LockState.LOCK_ACQUIRED;<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    return proc.doAcquireLock(env);<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    final TEnvironment env = getEnvironment();<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    // for how the framework works, we know that we will always have the lock<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (force || !proc.holdLock(env)) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      proc.doReleaseLock(env);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * Execute the rollback of the full procedure stack.<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * finished to user, and the result will be the fatal exception.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   */<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    if (exception == null) {<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>      exception = procStack.getException();<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      rootProc.setFailure(exception);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      store.update(rootProc);<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span><a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span><a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>    int stackTail = subprocStack.size();<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    boolean reuseLock = false;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    while (stackTail --&gt; 0) {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span><a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      LockState lockState;<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>        // queue waiting for the lock availability<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>        return lockState;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      }<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span><a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      lockState = executeRollback(proc);<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // If the next procedure is the same to this one<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      // we can avoid to lock/unlock each step<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      if (!reuseLock) {<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>        releaseLock(proc, false);<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // useful to test the procedure recovery.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      if (abortRollback) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>        return lockState;<a name="line.1226"></a>
+<span class="sourceLineNo">1157</span>        // Finalize the procedure state<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        if (proc.getProcId() == rootProcId) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>          procedureFinished(proc);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>          execCompletionCleanup(proc);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>      }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>    } while (procStack.isFailed());<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    final TEnvironment env = getEnvironment();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      return LockState.LOCK_ACQUIRED;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    return proc.doAcquireLock(env);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    final TEnvironment env = getEnvironment();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    // for how the framework works, we know that we will always have the lock<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    if (force || !proc.holdLock(env)) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      proc.doReleaseLock(env);<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><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Execute the rollback of the full procedure stack.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * finished to user, and the result will be the fatal exception.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (exception == null) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      exception = procStack.getException();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      rootProc.setFailure(exception);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      store.update(rootProc);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>    int stackTail = subprocStack.size();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    boolean reuseLock = false;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    while (stackTail --&gt; 0) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      LockState lockState;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        // queue waiting for the lock availability<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        return lockState;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      lockState = executeRollback(proc);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      // If the next procedure is the same to this one<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>      // we can avoid to lock/unlock each step<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      if (!reuseLock) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        releaseLock(proc, false);<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>      subprocStack.remove(stackTail);<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      // if the procedure is kind enough to pass the slot to someone else, yield<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      if (proc.isYieldAfterExecutionStep(getEnvironment())) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>        return LockState.LOCK_YIELD_WAIT;<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      }<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span><a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      if (proc != rootProc) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        execCompletionCleanup(proc);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span><a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // Finalize the procedure state<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    LOG.info("Rolled back " + rootProc +<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>             " exec-time=" + StringUtils.humanTimeDiff(rootProc.elapsedTime()));<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    procedureFinished(rootProc);<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    return LockState.LOCK_ACQUIRED;<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span><a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  /**<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * Execute the rollback of the procedure step.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   * It updates the store with the new state (stack index)<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>   * or will remove completly the procedure in case it is a child.<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  private LockState executeRollback(final Procedure proc) {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>    try {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      proc.doRollback(getEnvironment());<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    } catch (IOException e) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      if (LOG.isDebugEnabled()) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        LOG.debug("Roll back attempt failed for " + proc, e);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      }<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    } catch (InterruptedException e) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      handleInterruptedException(proc, e);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    } catch (Throwable e) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      // Catch NullPointerExceptions or similar errors...<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>      LOG.fatal("CODE-BUG: Uncatched runtime exception for procedure: " + proc, e);<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    // allows to kill the executor before something is stored to the wal.<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>    // useful to test the procedure recovery.<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    if (testing != null &amp;&amp; testing.shouldKillBeforeStoreUpdate()) {<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      LOG.debug("TESTING: Kill before store update");<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      stop();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    if (proc.removeStackIndex()) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      proc.setState(ProcedureState.ROLLEDBACK);<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>      if (proc.hasParent()) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>        store.delete(proc.getProcId());<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        procedures.remove(proc.getProcId());<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      } else {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        final long[] childProcIds = rollbackStack.get(proc.getProcId()).getSubprocedureIds();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>        if (childProcIds != null) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>          store.delete(proc, childProcIds);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        } else {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          store.update(proc);<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>    } else {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      store.update(proc);<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return LockState.LOCK_ACQUIRED;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  /**<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   * Executes the specified procedure<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   *  - calls the doExecute() of the procedure<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>   *  - if the procedure execution didn't fail (e.g. invalid user input)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   *     - ...and returned subprocedures<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>   *        - the subprocedures are initialized.<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   *        - the subprocedures are added to the store<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   *        - the subprocedures are added to the runnable queue<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *        - the procedure is now in a WAITING state, waiting for the subprocedures to complete<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   *     - ...if there are no subprocedure<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>   *        - the procedure completed successfully<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>   *        - if there is a parent (WAITING)<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>   *            - the parent state will be set to RUNNABLE<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   *  - in case of failure<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   *    - the store is updated with the new state<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   *    - the executor (caller of this method) will start the rollback of the procedure<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   */<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  private void execProcedure(final RootProcedureState procStack, final Procedure procedure) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>    Preconditions.checkArgument(procedure.getState() == ProcedureState.RUNNABLE);<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Execute the procedure<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    boolean suspended = false;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    boolean reExecute = false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    Procedure[] subprocs = null;<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>    do {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      reExecute = false;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      try {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        subprocs = procedure.doExecute(getEnvironment());<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        if (subprocs != null &amp;&amp; subprocs.length == 0) {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          subprocs = null;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      } catch (ProcedureSuspendedException e) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        suspended = true;<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      } catch (ProcedureYieldException e) {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        if (LOG.isTraceEnabled()) {<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>          LOG.trace("Yield " + procedure + ": " + e.getMessage());<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        scheduler.yield(procedure);<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        return;<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>      } catch (InterruptedException e) {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        handleInterruptedException(procedure, e);<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        scheduler.yield(procedure);<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        return;<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      } catch (Throwable e) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>        // Catch NullPointerExceptions or similar errors...<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        String msg = "CODE-BUG: Uncaught runtime exception: " + procedure;<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        LOG.error(msg, e);<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        procedure.setFailure(new RemoteProcedureException(msg, e));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span><a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>      if (!procedure.isFailed()) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        if (subprocs != null) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>          if (subprocs.length == 1 &amp;&amp; subprocs[0] == procedure) {<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>            // quick-shortcut for a state machine like procedure<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>            subprocs = null;<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            reExecute = true;<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          } else {<a name="line.1353">

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 94f6ab6..d18d851 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/Procedure.html
@@ -46,7 +46,7 @@
 <span class="sourceLineNo">038</span><a name="line.38"></a>
 <span class="sourceLineNo">039</span>/**<a name="line.39"></a>
 <span class="sourceLineNo">040</span> * Base Procedure class responsible to handle the Procedure Metadata<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * e.g. state, startTime, lastUpdate, stack-indexes, ...<a name="line.41"></a>
+<span class="sourceLineNo">041</span> * e.g. state, submittedTime, lastUpdate, stack-indexes, ...<a name="line.41"></a>
 <span class="sourceLineNo">042</span> *<a name="line.42"></a>
 <span class="sourceLineNo">043</span> * execute() is called each time the procedure is executed.<a name="line.43"></a>
 <span class="sourceLineNo">044</span> * it may be called multiple times in case of failure and restart, so the<a name="line.44"></a>
@@ -81,7 +81,7 @@
 <span class="sourceLineNo">073</span>  private long parentProcId = NO_PROC_ID;<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  private long rootProcId = NO_PROC_ID;<a name="line.74"></a>
 <span class="sourceLineNo">075</span>  private long procId = NO_PROC_ID;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private long startTime;<a name="line.76"></a>
+<span class="sourceLineNo">076</span>  private long submittedTime;<a name="line.76"></a>
 <span class="sourceLineNo">077</span><a name="line.77"></a>
 <span class="sourceLineNo">078</span>  // runtime state, updated every operation<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  private ProcedureState state = ProcedureState.INITIALIZING;<a name="line.79"></a>
@@ -248,566 +248,587 @@
 <span class="sourceLineNo">240</span>    return true;<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>  @Override<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  public String toString() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    // Return the simple String presentation of the procedure.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    return toStringSimpleSB().toString();<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">243</span>  /**<a name="line.243"></a>
+<span class="sourceLineNo">244</span>   * This function will be called just when procedure is submitted for execution. Override this<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   * method to update the metrics at the beginning of the procedure<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  protected void updateMetricsOnSubmit(final TEnvironment env) {}<a name="line.247"></a>
 <span class="sourceLineNo">248</span><a name="line.248"></a>
 <span class="sourceLineNo">249</span>  /**<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   * Build the StringBuilder for the simple form of<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * procedure string.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * @return the StringBuilder<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   */<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected StringBuilder toStringSimpleSB() {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    final StringBuilder sb = new StringBuilder();<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    sb.append("procId=");<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    sb.append(getProcId());<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    if (hasParent()) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      sb.append(", parentProcId=");<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      sb.append(getParentProcId());<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
-<span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>    if (hasOwner()) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      sb.append(", owner=");<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      sb.append(getOwner());<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    }<a name="line.268"></a>
+<span class="sourceLineNo">250</span>   * This function will be called just after procedure execution is finished. Override this method<a name="line.250"></a>
+<span class="sourceLineNo">251</span>   * to update metrics at the end of the procedure<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   *<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * TODO: As any of the sub-procedures on failure rolls back all procedures in the stack,<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * including successfully finished siblings, this function may get called twice in certain<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * cases for certain procedures. Explore further if this can be called once.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   *<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * @param env<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * @param runtime - Runtime of the procedure in milliseconds<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * @param success - true if procedure is completed successfully<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  protected void updateMetricsOnFinish(final TEnvironment env, final long runtime,<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                       boolean success) {}<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 String toString() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    // Return the simple String presentation of the procedure.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    return toStringSimpleSB().toString();<a name="line.267"></a>
+<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
 <span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>    sb.append(", state=");<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    toStringState(sb);<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    if (hasException()) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      sb.append(", exception=" + getException());<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>    sb.append(", ");<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    toStringClassDetails(sb);<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>    return sb;<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>  /**<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * Extend the toString() information with more procedure<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * details<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  public String toStringDetails() {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    final StringBuilder sb = toStringSimpleSB();<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>    sb.append(" startTime=");<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    sb.append(getStartTime());<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>    sb.append(" lastUpdate=");<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    sb.append(getLastUpdate());<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>    final int[] stackIndices = getStackIndexes();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    if (stackIndices != null) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      sb.append("\n");<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      sb.append("stackIndexes=");<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      sb.append(Arrays.toString(stackIndices));<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>    return sb.toString();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>  protected String toStringClass() {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    StringBuilder sb = new StringBuilder();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    toStringClassDetails(sb);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    return sb.toString();<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>  /**<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   * Called from {@link #toString()} when interpolating {@link Procedure} state<a name="line.313"></a>
-<span class="sourceLineNo">314</span>   * @param builder Append current {@link ProcedureState}<a name="line.314"></a>
-<span class="sourceLineNo">315</span>   */<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  protected void toStringState(StringBuilder builder) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    builder.append(getState());<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>  /**<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   * Extend the toString() information with the procedure details<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   * e.g. className and parameters<a name="line.322"></a>
-<span class="sourceLineNo">323</span>   * @param builder the string builder to use to append the proc specific information<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   */<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  protected void toStringClassDetails(StringBuilder builder) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    builder.append(getClass().getName());<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>  // ==========================================================================<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  //  Those fields are unchanged after initialization.<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  //<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  //  Each procedure will get created from the user or during<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  //  ProcedureExecutor.start() during the load() phase and then submitted<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  //  to the executor. these fields will never be changed after initialization<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  // ==========================================================================<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  public long getProcId() {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    return procId;<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>  public boolean hasParent() {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    return parentProcId != NO_PROC_ID;<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>  public long getParentProcId() {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    return parentProcId;<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>  public long getRootProcId() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return rootProcId;<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 NonceKey getNonceKey() {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    return nonceKey;<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>  public long getStartTime() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    return startTime;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  public String getOwner() {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    return owner;<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>  public boolean hasOwner() {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    return owner != null;<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>  /**<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   * Called by the ProcedureExecutor to assign the ID to the newly created procedure.<a name="line.369"></a>
-<span class="sourceLineNo">370</span>   */<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  @VisibleForTesting<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  @InterfaceAudience.Private<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  protected void setProcId(final long procId) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    this.procId = procId;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    this.startTime = EnvironmentEdgeManager.currentTime();<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    setState(ProcedureState.RUNNABLE);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  /**<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   * Called by the ProcedureExecutor to assign the parent to the newly created procedure.<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   */<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  @InterfaceAudience.Private<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  protected void setParentProcId(final long parentProcId) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    this.parentProcId = parentProcId;<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>  @InterfaceAudience.Private<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  protected void setRootProcId(final long rootProcId) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    this.rootProcId = rootProcId;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  /**<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * Called by the ProcedureExecutor to set the value to the newly created procedure.<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   */<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  @VisibleForTesting<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  @InterfaceAudience.Private<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  protected void setNonceKey(final NonceKey nonceKey) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    this.nonceKey = nonceKey;<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>  @VisibleForTesting<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  @InterfaceAudience.Private<a name="line.402"></a>
-<span class="sourceLineNo">403</span>  public void setOwner(final String owner) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    this.owner = StringUtils.isEmpty(owner) ? null : owner;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  }<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>  public void setOwner(final User owner) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    assert owner != null : "expected owner to be not null";<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    setOwner(owner.getShortName());<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>  /**<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   * Called on store load to initialize the Procedure internals after<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   * the creation/deserialization.<a name="line.414"></a>
+<span class="sourceLineNo">270</span>  /**<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   * Build the StringBuilder for the simple form of<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * procedure string.<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   * @return the StringBuilder<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   */<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  protected StringBuilder toStringSimpleSB() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    final StringBuilder sb = new StringBuilder();<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>    sb.append("procId=");<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    sb.append(getProcId());<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>    if (hasParent()) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      sb.append(", parentProcId=");<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      sb.append(getParentProcId());<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>    if (hasOwner()) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      sb.append(", owner=");<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      sb.append(getOwner());<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>    sb.append(", state=");<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    toStringState(sb);<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>    if (hasException()) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      sb.append(", exception=" + getException());<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>    sb.append(", ");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    toStringClassDetails(sb);<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>    return sb;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>  }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>  /**<a name="line.304"></a>
+<span class="sourceLineNo">305</span>   * Extend the toString() information with more procedure<a name="line.305"></a>
+<span class="sourceLineNo">306</span>   * details<a name="line.306"></a>
+<span class="sourceLineNo">307</span>   */<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public String toStringDetails() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    final StringBuilder sb = toStringSimpleSB();<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>    sb.append(" submittedTime=");<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    sb.append(getSubmittedTime());<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>    sb.append(" lastUpdate=");<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    sb.append(getLastUpdate());<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    final int[] stackIndices = getStackIndexes();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    if (stackIndices != null) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      sb.append("\n");<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      sb.append("stackIndexes=");<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      sb.append(Arrays.toString(stackIndices));<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>    return sb.toString();<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>  protected String toStringClass() {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    StringBuilder sb = new StringBuilder();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    toStringClassDetails(sb);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    return sb.toString();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>  /**<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   * Called from {@link #toString()} when interpolating {@link Procedure} state<a name="line.334"></a>
+<span class="sourceLineNo">335</span>   * @param builder Append current {@link ProcedureState}<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   */<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  protected void toStringState(StringBuilder builder) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    builder.append(getState());<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>   * Extend the toString() information with the procedure details<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   * e.g. className and parameters<a name="line.343"></a>
+<span class="sourceLineNo">344</span>   * @param builder the string builder to use to append the proc specific information<a name="line.344"></a>
+<span class="sourceLineNo">345</span>   */<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  protected void toStringClassDetails(StringBuilder builder) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    builder.append(getClass().getName());<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>  //  Those fields are unchanged after initialization.<a name="line.351"></a>
+<span class="sourceLineNo">352</span>  //<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  //  Each procedure will get created from the user or during<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  //  ProcedureExecutor.start() during the load() phase and then submitted<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  //  to the executor. these fields will never be changed after initialization<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  // ==========================================================================<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  public long getProcId() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    return procId;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public boolean hasParent() {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return parentProcId != NO_PROC_ID;<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>  public long getParentProcId() {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    return parentProcId;<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>  public long getRootProcId() {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    return rootProcId;<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>  public NonceKey getNonceKey() {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    return nonceKey;<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>  public long getSubmittedTime() {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    return submittedTime;<a name="line.378"></a>
+<span class="sourceLineNo">379</span>  }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>  public String getOwner() {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    return owner;<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>  public boolean hasOwner() {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    return owner != null;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>  /**<a name="line.389"></a>
+<span class="sourceLineNo">390</span>   * Called by the ProcedureExecutor to assign the ID to the newly created procedure.<a name="line.390"></a>
+<span class="sourceLineNo">391</span>   */<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  @VisibleForTesting<a name="line.392"></a>
+<span class="sourceLineNo">393</span>  @InterfaceAudience.Private<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  protected void setProcId(final long procId) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    this.procId = procId;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    this.submittedTime = EnvironmentEdgeManager.currentTime();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    setState(ProcedureState.RUNNABLE);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>  /**<a name="line.400"></a>
+<span class="sourceLineNo">401</span>   * Called by the ProcedureExecutor to assign the parent to the newly created procedure.<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   */<a name="line.402"></a>
+<span class="sourceLineNo">403</span>  @InterfaceAudience.Private<a name="line.403"></a>
+<span class="sourceLineNo">404</span>  protected void setParentProcId(final long parentProcId) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    this.parentProcId = parentProcId;<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>  @InterfaceAudience.Private<a name="line.408"></a>
+<span class="sourceLineNo">409</span>  protected void setRootProcId(final long rootProcId) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    this.rootProcId = rootProcId;<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>  /**<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   * Called by the ProcedureExecutor to set the value to the newly created procedure.<a name="line.414"></a>
 <span class="sourceLineNo">415</span>   */<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  @InterfaceAudience.Private<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  protected void setStartTime(final long startTime) {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    this.startTime = startTime;<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  // ==========================================================================<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  //  runtime state - timeout related<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  // ==========================================================================<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  /**<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   * @param timeout timeout interval in msec<a name="line.425"></a>
-<span class="sourceLineNo">426</span>   */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  protected void setTimeout(final int timeout) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    this.timeout = timeout;<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>  public boolean hasTimeout() {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    return timeout != NO_TIMEOUT;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>  }<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>  /**<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * @return the timeout in msec<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   */<a name="line.437"></a>
-<span class="sourceLineNo">438</span>  public int getTimeout() {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    return timeout;<a name="line.439"></a>
+<span class="sourceLineNo">416</span>  @VisibleForTesting<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  @InterfaceAudience.Private<a name="line.417"></a>
+<span class="sourceLineNo">418</span>  protected void setNonceKey(final NonceKey nonceKey) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    this.nonceKey = nonceKey;<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>  @VisibleForTesting<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  @InterfaceAudience.Private<a name="line.423"></a>
+<span class="sourceLineNo">424</span>  public void setOwner(final String owner) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    this.owner = StringUtils.isEmpty(owner) ? null : owner;<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>  public void setOwner(final User owner) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    assert owner != null : "expected owner to be not null";<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    setOwner(owner.getShortName());<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
+<span class="sourceLineNo">434</span>   * Called on store load to initialize the Procedure internals after<a name="line.434"></a>
+<span class="sourceLineNo">435</span>   * the creation/deserialization.<a name="line.435"></a>
+<span class="sourceLineNo">436</span>   */<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  @InterfaceAudience.Private<a name="line.437"></a>
+<span class="sourceLineNo">438</span>  protected void setSubmittedTime(final long submittedTime) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    this.submittedTime = submittedTime;<a name="line.439"></a>
 <span class="sourceLineNo">440</span>  }<a name="line.440"></a>
 <span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>  /**<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * Called on store load to initialize the Procedure internals after<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * the creation/deserialization.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  @InterfaceAudience.Private<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  protected void setLastUpdate(final long lastUpdate) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    this.lastUpdate = lastUpdate;<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>   * Called by ProcedureExecutor after each time a procedure step is executed.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   */<a name="line.453"></a>
-<span class="sourceLineNo">454</span>  @InterfaceAudience.Private<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  protected void updateTimestamp() {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    this.lastUpdate = EnvironmentEdgeManager.currentTime();<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>  public long getLastUpdate() {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return lastUpdate;<a name="line.460"></a>
+<span class="sourceLineNo">442</span>  // ==========================================================================<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  //  runtime state - timeout related<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>   * @param timeout timeout interval in msec<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  protected void setTimeout(final int timeout) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    this.timeout = timeout;<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>  public boolean hasTimeout() {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    return timeout != NO_TIMEOUT;<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>   * @return the timeout in msec<a name="line.457"></a>
+<span class="sourceLineNo">458</span>   */<a name="line.458"></a>
+<span class="sourceLineNo">459</span>  public int getTimeout() {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    return timeout;<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>  /**<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * Timeout of the next timeout.<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * Called by the ProcedureExecutor if the procedure has timeout set and<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * the procedure is in the waiting queue.<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * @return the timestamp of the next timeout.<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   */<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  @InterfaceAudience.Private<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  protected long getTimeoutTimestamp() {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    return getLastUpdate() + getTimeout();<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>  // ==========================================================================<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  //  runtime state<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>   * @return the time elapsed between the last update and the start time of the procedure.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   */<a name="line.479"></a>
-<span class="sourceLineNo">480</span>  public long elapsedTime() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    return getLastUpdate() - getStartTime();<a name="line.481"></a>
+<span class="sourceLineNo">464</span>   * Called on store load to initialize the Procedure internals after<a name="line.464"></a>
+<span class="sourceLineNo">465</span>   * the creation/deserialization.<a name="line.465"></a>
+<span class="sourceLineNo">466</span>   */<a name="line.466"></a>
+<span class="sourceLineNo">467</span>  @InterfaceAudience.Private<a name="line.467"></a>
+<span class="sourceLineNo">468</span>  protected void setLastUpdate(final long lastUpdate) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    this.lastUpdate = lastUpdate;<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>  /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   * Called by ProcedureExecutor after each time a procedure step is executed.<a name="line.473"></a>
+<span class="sourceLineNo">474</span>   */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  @InterfaceAudience.Private<a name="line.475"></a>
+<span class="sourceLineNo">476</span>  protected void updateTimestamp() {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    this.lastUpdate = EnvironmentEdgeManager.currentTime();<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 long getLastUpdate() {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    return lastUpdate;<a name="line.481"></a>
 <span class="sourceLineNo">482</span>  }<a name="line.482"></a>
 <span class="sourceLineNo">483</span><a name="line.483"></a>
 <span class="sourceLineNo">484</span>  /**<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * @return the serialized result if any, otherwise null<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   */<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  public byte[] getResult() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    return result;<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>   * The procedure may leave a "result" on completion.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   * @param result the serialized result that will be passed to the client<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   */<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  protected void setResult(final byte[] result) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    this.result = result;<a name="line.496"></a>
-<span class="sourceLineNo">497</span>  }<a name="line.497"></a>
-<span class="sourceLineNo">498</span><a name="line.498"></a>
-<span class="sourceLineNo">499</span>  // ==============================================================================================<a name="line.499"></a>
-<span class="sourceLineNo">500</span>  //  Runtime state, updated every operation by the ProcedureExecutor<a name="line.500"></a>
-<span class="sourceLineNo">501</span>  //<a name="line.501"></a>
-<span class="sourceLineNo">502</span>  //  There is always 1 thread at the time operating on the state of the procedure.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  //  The ProcedureExecutor may check and set states, or some Procecedure may<a name="line.503"></a>
-<span class="sourceLineNo">504</span>  //  update its own state. but no concurrent updates. we use synchronized here<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  //  just because the procedure can get scheduled on different executor threads on each step.<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  // ==============================================================================================<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  /**<a name="line.508"></a>
-<span class="sourceLineNo">509</span>   * Procedure has states which are defined in proto file. At some places in the code, we<a name="line.509"></a>
-<span class="sourceLineNo">510</span>   * need to determine more about those states. Following Methods help determine:<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   *<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * {@link #isFailed()} - A procedure has executed at least once and has failed. The procedure<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   *                       may or may not have rolled back yet. Any procedure in FAILED state<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   *                       will be eventually moved to ROLLEDBACK state.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   *<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * {@link #isSuccess()} - A procedure is completed successfully without any exception.<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   *<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * {@link #isFinished()} - As a procedure in FAILED state will be tried forever for rollback, only<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   *                         condition when scheduler/ executor will drop procedure from further<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   *                         processing is when procedure state is ROLLEDBACK or isSuccess()<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   *                         returns true. This is a terminal state of the procedure.<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   *<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   * {@link #isWaiting()} - Procedure is in one of the two waiting states ({@link<a name="line.523"></a>
-<span class="sourceLineNo">524</span>   *                        ProcedureState#WAITING}, {@link ProcedureState#WAITING_TIMEOUT}).<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>  /**<a name="line.527"></a>
-<span class="sourceLineNo">528</span>   * @return true if the procedure is in a RUNNABLE state.<a name="line.528"></a>
-<span class="sourceLineNo">529</span>   */<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  protected synchronized boolean isRunnable() {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    return state == ProcedureState.RUNNABLE;<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>  public synchronized boolean isInitializing() {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    return state == ProcedureState.INITIALIZING;<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>  /**<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   * @return true if the procedure has failed. It may or may not have rolled back.<a name="line.539"></a>
-<span class="sourceLineNo">540</span>   */<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  public synchronized boolean isFailed() {<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    return state == ProcedureState.FAILED || state == ProcedureState.ROLLEDBACK;<a name="line.542"></a>
-<span class="sourceLineNo">543</span>  }<a name="line.543"></a>
-<span class="sourceLineNo">544</span><a name="line.544"></a>
-<span class="sourceLineNo">545</span>  /**<a name="line.545"></a>
-<span class="sourceLineNo">546</span>   * @return true if the procedure is finished successfully.<a name="line.546"></a>
-<span class="sourceLineNo">547</span>   */<a name="line.547"></a>
-<span class="sourceLineNo">548</span>  public synchronized boolean isSuccess() {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    return state == ProcedureState.SUCCESS &amp;&amp; !hasException();<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>  /**<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * @return true if the procedure is finished. The Procedure may be completed successfully or<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   * rolledback.<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   */<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  public synchronized boolean isFinished() {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    return isSuccess() || state == ProcedureState.ROLLEDBACK;<a name="line.557"></a>
-<span class="sourceLineNo">558</span>  }<a name="line.558"></a>
-<span class="sourceLineNo">559</span><a name="line.559"></a>
-<span class="sourceLineNo">560</span>  /**<a name="line.560"></a>
-<span class="sourceLineNo">561</span>   * @return true if the procedure is waiting for a child to finish or for an external event.<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   */<a name="line.562"></a>
-<span class="sourceLineNo">563</span>  public synchronized boolean isWaiting() {<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    switch (state) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      case WAITING:<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      case WAITING_TIMEOUT:<a name="line.566"></a>
-<span class="sourceLineNo">567</span>        return true;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      default:<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        break;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    return false;<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>  @VisibleForTesting<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  @InterfaceAudience.Private<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  protected synchronized void setState(final ProcedureState state) {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    this.state = state;<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    updateTimestamp();<a name="line.578"></a>
+<span class="sourceLineNo">485</span>   * Timeout of the next timeout.<a name="line.485"></a>
+<span class="sourceLineNo">486</span>   * Called by the ProcedureExecutor if the procedure has timeout set and<a name="line.486"></a>
+<span class="sourceLineNo">487</span>   * the procedure is in the waiting queue.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   * @return the timestamp of the next timeout.<a name="line.488"></a>
+<span class="sourceLineNo">489</span>   */<a name="line.489"></a>
+<span class="sourceLineNo">490</span>  @InterfaceAudience.Private<a name="line.490"></a>
+<span class="sourceLineNo">491</span>  protected long getTimeoutTimestamp() {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    return getLastUpdate() + getTimeout();<a name="line.492"></a>
+<span class="sourceLineNo">493</span>  }<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>  // ==========================================================================<a name="line.495"></a>
+<span class="sourceLineNo">496</span>  //  runtime state<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>   * @return the time elapsed between the last update and the start time of the procedure.<a name="line.499"></a>
+<span class="sourceLineNo">500</span>   */<a name="line.500"></a>
+<span class="sourceLineNo">501</span>  public long elapsedTime() {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    return getLastUpdate() - getSubmittedTime();<a name="line.502"></a>
+<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>  /**<a name="line.505"></a>
+<span class="sourceLineNo">506</span>   * @return the serialized result if any, otherwise null<a name="line.506"></a>
+<span class="sourceLineNo">507</span>   */<a name="line.507"></a>
+<span class="sourceLineNo">508</span>  public byte[] getResult() {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    return result;<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>   * The procedure may leave a "result" on completion.<a name="line.513"></a>
+<span class="sourceLineNo">514</span>   * @param result the serialized result that will be passed to the client<a name="line.514"></a>
+<span class="sourceLineNo">515</span>   */<a name="line.515"></a>
+<span class="sourceLineNo">516</span>  protected void setResult(final byte[] result) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>    this.result = result;<a name="line.517"></a>
+<span class="sourceLineNo">518</span>  }<a name="line.518"></a>
+<span class="sourceLineNo">519</span><a name="line.519"></a>
+<span class="sourceLineNo">520</span>  // ==============================================================================================<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  //  Runtime state, updated every operation by the ProcedureExecutor<a name="line.521"></a>
+<span class="sourceLineNo">522</span>  //<a name="line.522"></a>
+<span class="sourceLineNo">523</span>  //  There is always 1 thread at the time operating on the state of the procedure.<a name="line.523"></a>
+<span class="sourceLineNo">524</span>  //  The ProcedureExecutor may check and set states, or some Procecedure may<a name="line.524"></a>
+<span class="sourceLineNo">525</span>  //  update its own state. but no concurrent updates. we use synchronized here<a name="line.525"></a>
+<span class="sourceLineNo">526</span>  //  just because the procedure can get scheduled on different executor threads on each step.<a name="line.526"></a>
+<span class="sourceLineNo">527</span>  // ==============================================================================================<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>  /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>   * Procedure has states which are defined in proto file. At some places in the code, we<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   * need to determine more about those states. Following Methods help determine:<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   *<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   * {@link #isFailed()} - A procedure has executed at least once and has failed. The procedure<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   *                       may or may not have rolled back yet. Any procedure in FAILED state<a name="line.534"></a>
+<span class="sourceLineNo">535</span>   *                       will be eventually moved to ROLLEDBACK state.<a name="line.535"></a>
+<span class="sourceLineNo">536</span>   *<a name="line.536"></a>
+<span class="sourceLineNo">537</span>   * {@link #isSuccess()} - A procedure is completed successfully without any exception.<a name="line.537"></a>
+<span class="sourceLineNo">538</span>   *<a name="line.538"></a>
+<span class="sourceLineNo">539</span>   * {@link #isFinished()} - As a procedure in FAILED state will be tried forever for rollback, only<a name="line.539"></a>
+<span class="sourceLineNo">540</span>   *                         condition when scheduler/ executor will drop procedure from further<a name="line.540"></a>
+<span class="sourceLineNo">541</span>   *                         processing is when procedure state is ROLLEDBACK or isSuccess()<a name="line.541"></a>
+<span class="sourceLineNo">542</span>   *                         returns true. This is a terminal state of the procedure.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   *<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * {@link #isWaiting()} - Procedure is in one of the two waiting states ({@link<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   *                        ProcedureState#WAITING}, {@link ProcedureState#WAITING_TIMEOUT}).<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>  /**<a name="line.548"></a>
+<span class="sourceLineNo">549</span>   * @return true if the procedure is in a RUNNABLE state.<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   */<a name="line.550"></a>
+<span class="sourceLineNo">551</span>  protected synchronized boolean isRunnable() {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    return state == ProcedureState.RUNNABLE;<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>  public synchronized boolean isInitializing() {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    return state == ProcedureState.INITIALIZING;<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>  /**<a name="line.559"></a>
+<span class="sourceLineNo">560</span>   * @return true if the procedure has failed. It may or may not have rolled back.<a name="line.560"></a>
+<span class="sourceLineNo">561</span>   */<a name="line.561"></a>
+<span class="sourceLineNo">562</span>  public synchronized boolean isFailed() {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    return state == ProcedureState.FAILED || state == ProcedureState.ROLLEDBACK;<a name="line.563"></a>
+<span class="sourceLineNo">564</span>  }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>  /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   * @return true if the procedure is finished successfully.<a name="line.567"></a>
+<span class="sourceLineNo">568</span>   */<a name="line.568"></a>
+<span class="sourceLineNo">569</span>  public synchronized boolean isSuccess() {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>    return state == ProcedureState.SUCCESS &amp;&amp; !hasException();<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>   * @return true if the procedure is finished. The Procedure may be completed successfully or<a name="line.574"></a>
+<span class="sourceLineNo">575</span>   * rolledback.<a name="line.575"></a>
+<span class="sourceLineNo">576</span>   */<a name="line.576"></a>
+<span class="sourceLineNo">577</span>  public synchronized boolean isFinished() {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    return isSuccess() || state == ProcedureState.ROLLEDBACK;<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>  @InterfaceAudience.Private<a name="line.581"></a>
-<span class="sourceLineNo">582</span>  protected synchronized ProcedureState getState() {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return state;<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>  protected void setFailure(final String source, final Throwable cause) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    setFailure(new RemoteProcedureException(source, cause));<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>  protected synchronized void setFailure(final RemoteProcedureException exception) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    this.exception = exception;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    if (!isFinished()) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      setState(ProcedureState.FAILED);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  protected void setAbortFailure(final String source, final String msg) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    setFailure(source, new ProcedureAbortedException(msg));<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>  /**<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * Called by the ProcedureExecutor when the timeout set by setTimeout() is expired.<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * @return true to let the framework handle the timeout as abort,<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   *         false in case the procedure handled the timeout itself.<a name="line.604"></a>
-<span class="sourceLineNo">605</span>   */<a name="line.605"></a>
-<span class="sourceLineNo">606</span>  protected synchronized boolean setTimeoutFailure(final TEnvironment env) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    if (state == ProcedureState.WAITING_TIMEOUT) {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      long timeDiff = EnvironmentEdgeManager.currentTime() - lastUpdate;<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      setFailure("ProcedureExecutor", new TimeoutIOException(<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        "Operation timed out after " + StringUtils.humanTimeDiff(timeDiff)));<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      return true;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    }<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    return false;<a name="line.613"></a>
-<span class="sourceLineNo">614</span>  }<a name="line.614"></a>
-<span class="sourceLineNo">615</span><a name="line.615"></a>
-<span class="sourceLineNo">616</span>  public synchronized boolean hasException() {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    return exception != null;<a name="line.617"></a>
-<span class="sourceLineNo">618</span>  }<a name="line.618"></a>
-<span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>  public synchronized RemoteProcedureException getException() {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    return exception;<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>  /**<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   * Called by the ProcedureExecutor on procedure-load to restore the latch state<a name="line.625"></a>
+<span class="sourceLineNo">581</span>  /**<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   * @return true if the procedure is waiting for a child to finish or for an external event.<a name="line.582"></a>
+<span class="sourceLineNo">583</span>   */<a name="line.583"></a>
+<span class="sourceLineNo">584</span>  public synchronized boolean isWaiting() {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    switch (state) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      case WAITING:<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      case WAITING_TIMEOUT:<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        return true;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      default:<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        break;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    return false;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>  }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>  @VisibleForTesting<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  @InterfaceAudience.Private<a name="line.596"></a>
+<span class="sourceLineNo">597</span>  protected synchronized void setState(final ProcedureState state) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    this.state = state;<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    updateTimestamp();<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>  @InterfaceAudience.Private<a name="line.602"></a>
+<span class="sourceLineNo">603</span>  protected synchronized ProcedureState getState() {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    return state;<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>  protected void setFailure(final String source, final Throwable cause) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    setFailure(new RemoteProcedureException(source, cause));<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  }<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>  protected synchronized void setFailure(final RemoteProcedureException exception) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    this.exception = exception;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    if (!isFinished()) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      setState(ProcedureState.FAILED);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>  }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>  protected void setAbortFailure(final String source, final String msg) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    setFailure(source, new ProcedureAbortedException(msg));<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>  /**<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * Called by the ProcedureExecutor when the timeout set by setTimeout() is expired.<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @return true to let the framework handle the timeout as abort,<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   *         false in case the procedure handled the timeout itself.<a name="line.625"></a>
 <span class="sourceLineNo">626</span>   */<a name="line.626"></a>
-<span class="sourceLineNo">627</span>  @InterfaceAudience.Private<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  protected synchronized void setChildrenLatch(final int numChildren) {<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    this.childrenLatch = numChildren;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>  }<a name="line.630"></a>
-<span class="sourceLineNo">631</span><a name="line.631"></a>
-<span class="sourceLineNo">632</span>  /**<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   * Called by the ProcedureExecutor on procedure-load to restore the latch state<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   */<a name="line.634"></a>
-<span class="sourceLineNo">635</span>  @InterfaceAudience.Private<a name="line.635"></a>
-<span class="sourceLineNo">636</span>  protected synchronized void incChildrenLatch() {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    // TODO: can this be inferred from the stack? I think so...<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    this.childrenLatch++;<a name="line.638"></a>
+<span class="sourceLineNo">627</span>  protected synchronized boolean setTimeoutFailure(final TEnvironment env) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    if (state == ProcedureState.WAITING_TIMEOUT) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      long timeDiff = EnvironmentEdgeManager.currentTime() - lastUpdate;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      setFailure("ProcedureExecutor", new TimeoutIOException(<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        "Operation timed out after " + StringUtils.humanTimeDiff(timeDiff)));<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      return true;<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    }<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    return false;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>  }<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>  public synchronized boolean hasException() {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>    return exception != null;<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>  /**<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * Called by the ProcedureExecutor to notify that one of the sub-procedures has completed.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   */<a name="line.643"></a>
-<span class="sourceLineNo">644</span>  @InterfaceAudience.Private<a name="line.644"></a>
-<span class="sourceLineNo">645</span>  protected synchronized boolean childrenCountDown() {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    assert childrenLatch &gt; 0: this;<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    return --childrenLatch == 0;<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>  @InterfaceAudience.Private<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  protected synchronized boolean hasChildren() {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    return childrenLatch &gt; 0;<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>  @InterfaceAudience.Private<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  protected synchronized int getChildrenLatch() {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    return childrenLatch;<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>   * Called by the RootProcedureState on procedure execution.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   * Each procedure store its stack-index positions.<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   */<a name="line.663"></a>
-<span class="sourceLineNo">664</span>  @InterfaceAudience.Private<a name="line.664"></a>
-<span class="sourceLineNo">665</span>  protected synchronized void addStackIndex(final int index) {<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    if (stackIndexes == null) {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      stackIndexes = new int[] { index };<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    } else {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      int count = stackIndexes.length;<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      stackIndexes = Arrays.copyOf(stackIndexes, count + 1);<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      stackIndexes[count] = index;<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>  @InterfaceAudience.Private<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  protected synchronized boolean removeStackIndex() {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    if (stackIndexes != null &amp;&amp; stackIndexes.length &gt; 1) {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>      stackIndexes = Arrays.copyOf(stackIndexes, stackIndexes.length - 1);<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      return false;<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    } else {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>      stackIndexes = null;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>      return true;<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><a name="line.685"></a>
-<span class="sourceLineNo">686</span>  /**<a name="line.686"></a>
-<span class="sourceLineNo">687</span>   * Called on store load to initialize the Procedure internals after<a name="line.687"></a>
-<span class="sourceLineNo">688</span>   * the creation/deserialization.<a name="line.688"></a>
-<span class="sourceLineNo">689</span>   */<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  @InterfaceAudience.Private<a name="line.690"></a>
-<span class="sourceLineNo">691</span>  protected synchronized void setStackIndexes(final List&lt;Integer&gt; stackIndexes) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    this.stackIndexes = new int[stackIndexes.size()];<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    for (int i = 0; i &lt; this.stackIndexes.length; ++i) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      this.stackIndexes[i] = stackIndexes.get(i);<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>  @InterfaceAudience.Private<a name="line.698"></a>
-<span class="sourceLineNo">699</span>  protected synchronized boolean wasExecuted() {<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    return stackIndexes != null;<a name="line.700"></a>
-<span class="sourceLineNo">701</span>  }<a name="line.701"></a>
-<span class="sourceLineNo">702</span><a name="line.702"></a>
-<span class="sourceLineNo">703</span>  @InterfaceAudience.Private<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  protected synchronized int[] getStackIndexes() {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    return stackIndexes;<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>  // ==========================================================================<a name="line.708"></a>
-<span class="sourceLineNo">709</span>  //  Internal methods - called by the ProcedureExecutor<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>   * Internal method called by the ProcedureExecutor that starts the user-level code execute().<a name="line.713"></a>
-<span class="sourceLineNo">714</span>   */<a name="line.714"></a>
-<span class="sourceLineNo">715</span>  @InterfaceAudience.Private<a name="line.715"></a>
-<span class="sourceLineNo">716</span>  protected Procedure[] doExecute(final TEnvironment env)<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      throws ProcedureYieldException, ProcedureSuspendedException, InterruptedException {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    try {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      updateTimestamp();<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      return execute(env);<a name="line.720"></a>
-<span class="sourceLineNo">721</span>    } finally {<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      updateTimestamp();<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>  /**<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * Internal method called by the ProcedureExecutor that starts the user-level code rollback().<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   */<a name="line.728"></a>
-<span class="sourceLineNo">729</span>  @InterfaceAudience.Private<a name="line.729"></a>
-<span class="sourceLineNo">730</span>  protected void doRollback(final TEnvironment env)<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      throws IOException, InterruptedException {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    try {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      updateTimestamp();<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      rollback(env);<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    } finally {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      updateTimestamp();<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    }<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>   * Internal method called by the ProcedureExecutor that starts the user-level code acquireLock().<a name="line.741"></a>
-<span class="sourceLineNo">742</span>   */<a name="line.742"></a>
-<span class="sourceLineNo">743</span>  @InterfaceAudience.Private<a name="line.743"></a>
-<span class="sourceLineNo">744</span>  protected LockState doAcquireLock(final TEnvironment env) {<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    return acquireLock(env);<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>  /**<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   * Internal method called by the ProcedureExecutor that starts the user-level code releaseLock().<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  @InterfaceAudience.Private<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  protected void doReleaseLock(final TEnvironment env) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    releaseLock(env);<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>  @Override<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  public int compareTo(final Procedure other) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    return Long.compare(getProcId(), other.getProcId());<a name="line.758"></a>
+<span class="sourceLineNo">641</span>  public synchronized RemoteProcedureException getException() {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    return exception;<a name="line.642"></a>
+<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>  /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   * Called by the ProcedureExecutor on procedure-load to restore the latch state<a name="line.646"></a>
+<span class="sourceLineNo">647</span>   */<a name="line.647"></a>
+<span class="sourceLineNo">648</span>  @InterfaceAudience.Private<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  protected synchronized void setChildrenLatch(final int numChildren) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    this.childrenLatch = numChildren;<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>   * Called by the ProcedureExecutor on procedure-load to restore the latch state<a name="line.654"></a>
+<span class="sourceLineNo">655</span>   */<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  @InterfaceAudience.Private<a name="line.656"></a>
+<span class="sourceLineNo">657</span>  protected synchronized void incChildrenLatch() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>    // TODO: can this be inferred from the stack? I think so...<a name="line.658"></a>
+<span class="sourceLineNo">659</span>    this.childrenLatch++;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>  }<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span>  /**<a name="line.662"></a>
+<span class="sourceLineNo">663</span>   * Called by the ProcedureExecutor to notify that one of the sub-procedures has completed.<a name="line.663"></a>
+<span class="sourceLineNo">664</span>   */<a name="line.664"></a>
+<span class="sourceLineNo">665</span>  @InterfaceAudience.Private<a name="line.665"></a>
+<span class="sourceLineNo">666</span>  protected synchronized boolean childrenCountDown() {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    assert childrenLatch &gt; 0: this;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    return --childrenLatch == 0;<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>  @InterfaceAudience.Private<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  protected synchronized boolean hasChildren() {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    return childrenLatch &gt; 0;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>  }<a name="line.674"></a>
+<span class="sourceLineNo">675</span><a name="line.675"></a>
+<span class="sourceLineNo">676</span>  @InterfaceAudience.Private<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  protected synchronized int getChildrenLatch() {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    return childrenLatch;<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>  /**<a name="line.681"></a>
+<span class="sourceLineNo">682</span>   * Called by the RootProcedureState on procedure execution.<a name="line.682"></a>
+<span class="sourceLineNo">683</span>   * Each procedure store its stack-index positions.<a name="line.683"></a>
+<span class="sourceLineNo">684</span>   */<a name="line.684"></a>
+<span class="sourceLineNo">685</span>  @InterfaceAudience.Private<a name="line.685"></a>
+<span class="sourceLineNo">686</span>  protected synchronized void addStackIndex(final int index) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    if (stackIndexes == null) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      stackIndexes = new int[] { index };<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    } else {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>      int count = stackIndexes.length;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      stackIndexes = Arrays.copyOf(stackIndexes, count + 1);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>      stackIndexes[count] = index;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    }<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>  @InterfaceAudience.Private<a name="line.696"></a>
+<span class="sourceLineNo">697</span>  protected synchronized boolean removeStackIndex() {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>    if (stackIndexes != null &amp;&amp; stackIndexes.length &gt; 1) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      stackIndexes = Arrays.copyOf(stackIndexes, stackIndexes.length - 1);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>      return false;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>    } else {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>      stackIndexes = null;<a name="line.702"></a>
+<span class="sourceLineNo">703

<TRUNCATED>

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

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


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

Branch: refs/heads/asf-site
Commit: a949969bf7a174fb8387b3959919def50a5bf047
Parents: dd1a198
Author: jenkins <bu...@apache.org>
Authored: Sat Apr 15 14:58:10 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Sat Apr 15 14:58:10 2017 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |     4 +-
 apache_hbase_reference_guide.pdfmarks           |     4 +-
 apidocs/index-all.html                          |     4 +-
 .../org/apache/hadoop/hbase/ProcedureInfo.html  |    12 +-
 .../hadoop/hbase/class-use/ProcedureState.html  |     2 +-
 .../org/apache/hadoop/hbase/ProcedureInfo.html  |    20 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 15804 +++++++++--------
 checkstyle.rss                                  |     6 +-
 coc.html                                        |     4 +-
 cygwin.html                                     |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     4 +-
 devapidocs/constant-values.html                 |    36 +-
 devapidocs/index-all.html                       |    42 +-
 .../org/apache/hadoop/hbase/ProcedureInfo.html  |    20 +-
 .../hadoop/hbase/backup/package-tree.html       |     2 +-
 .../hadoop/hbase/class-use/ProcedureState.html  |     2 +-
 .../class-use/InterfaceAudience.Private.html    |    12 +-
 .../hbase/classification/package-tree.html      |     6 +-
 .../hadoop/hbase/client/package-tree.html       |    24 +-
 .../hadoop/hbase/filter/package-tree.html       |    12 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     6 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     4 +-
 .../master/MetricsAssignmentManagerSource.html  |    82 +-
 .../MetricsAssignmentManagerSourceImpl.html     |    14 +-
 .../hbase/master/locking/LockProcedure.html     |     2 +-
 .../hadoop/hbase/master/package-tree.html       |     6 +-
 .../AbstractStateMachineNamespaceProcedure.html |     2 +-
 .../AbstractStateMachineTableProcedure.html     |     2 +-
 .../procedure/AddColumnFamilyProcedure.html     |     2 +-
 .../procedure/CloneSnapshotProcedure.html       |     2 +-
 .../procedure/CreateNamespaceProcedure.html     |     2 +-
 .../master/procedure/CreateTableProcedure.html  |     2 +-
 .../procedure/DeleteColumnFamilyProcedure.html  |     2 +-
 .../procedure/DeleteNamespaceProcedure.html     |     2 +-
 .../master/procedure/DeleteTableProcedure.html  |     2 +-
 .../master/procedure/DisableTableProcedure.html |     2 +-
 .../master/procedure/EnableTableProcedure.html  |     2 +-
 .../procedure/MergeTableRegionsProcedure.html   |     2 +-
 .../procedure/ModifyColumnFamilyProcedure.html  |     2 +-
 .../procedure/ModifyNamespaceProcedure.html     |     2 +-
 .../master/procedure/ModifyTableProcedure.html  |     2 +-
 .../procedure/RestoreSnapshotProcedure.html     |     2 +-
 .../master/procedure/ServerCrashProcedure.html  |     2 +-
 .../procedure/SplitTableRegionProcedure.html    |     2 +-
 .../procedure/TruncateTableProcedure.html       |     2 +-
 .../hbase/master/procedure/package-tree.html    |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    12 +-
 .../hbase/procedure2/OnePhaseProcedure.html     |     2 +-
 .../hadoop/hbase/procedure2/Procedure.html      |   224 +-
 ...edureExecutor.CompletedProcedureCleaner.html |     2 +-
 .../ProcedureExecutor.DelayedProcedure.html     |     4 +-
 .../ProcedureExecutor.InlineChore.html          |    12 +-
 .../ProcedureExecutor.StoppableThread.html      |     8 +-
 ...ProcedureExecutor.TimeoutExecutorThread.html |    24 +-
 .../ProcedureExecutor.WorkerMonitor.html        |    32 +-
 .../ProcedureExecutor.WorkerThread.html         |    14 +-
 .../hbase/procedure2/ProcedureExecutor.html     |    66 +-
 .../procedure2/ProcedureInMemoryChore.html      |     2 +-
 .../hbase/procedure2/SequentialProcedure.html   |     2 +-
 .../hbase/procedure2/StateMachineProcedure.html |     2 +-
 .../hbase/procedure2/TwoPhaseProcedure.html     |     2 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../hadoop/hbase/quotas/package-tree.html       |     4 +-
 .../hadoop/hbase/regionserver/package-tree.html |    16 +-
 .../regionserver/querymatcher/package-tree.html |     4 +-
 .../hbase/security/access/package-tree.html     |     4 +-
 .../hadoop/hbase/security/package-tree.html     |     2 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   270 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   108 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    54 +-
 .../hadoop/hbase/util/class-use/NonceKey.html   |     2 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    10 +-
 .../org/apache/hadoop/hbase/ProcedureInfo.html  |    20 +-
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../client/HBaseAdmin.AbortProcedureFuture.html |     2 +-
 .../HBaseAdmin.AddColumnFamilyFuture.html       |     2 +-
 .../client/HBaseAdmin.CreateTableFuture.html    |     2 +-
 .../HBaseAdmin.DeleteColumnFamilyFuture.html    |     2 +-
 .../client/HBaseAdmin.DeleteTableFuture.html    |     2 +-
 .../client/HBaseAdmin.DisableTableFuture.html   |     2 +-
 .../client/HBaseAdmin.EnableTableFuture.html    |     2 +-
 .../HBaseAdmin.MergeTableRegionsFuture.html     |     2 +-
 .../HBaseAdmin.ModifyColumnFamilyFuture.html    |     2 +-
 .../client/HBaseAdmin.ModifyTableFuture.html    |     2 +-
 .../client/HBaseAdmin.NamespaceFuture.html      |     2 +-
 ...in.ProcedureFuture.WaitForStateCallable.html |     2 +-
 .../client/HBaseAdmin.ProcedureFuture.html      |     2 +-
 .../client/HBaseAdmin.ReplicationState.html     |     2 +-
 .../HBaseAdmin.RestoreSnapshotFuture.html       |     2 +-
 ...n.TableFuture.TableWaitForStateCallable.html |     2 +-
 .../hbase/client/HBaseAdmin.TableFuture.html    |     2 +-
 .../client/HBaseAdmin.ThrowableAbortable.html   |     2 +-
 .../client/HBaseAdmin.TruncateTableFuture.html  |     2 +-
 .../apache/hadoop/hbase/client/HBaseAdmin.html  |     2 +-
 .../MasterRpcServices.BalanceSwitchMode.html    |     4 +-
 .../hadoop/hbase/master/MasterRpcServices.html  |     4 +-
 .../master/MetricsAssignmentManagerSource.html  |    45 +-
 .../MetricsAssignmentManagerSourceImpl.html     |    71 +-
 .../master/procedure/ServerCrashProcedure.html  |     2 +-
 .../hbase/procedure2/Procedure.LockState.html   |  1107 +-
 .../hadoop/hbase/procedure2/Procedure.html      |  1107 +-
 ...edureExecutor.CompletedProcedureCleaner.html |  2003 +--
 .../ProcedureExecutor.DelayedProcedure.html     |  2003 +--
 .../ProcedureExecutor.InlineChore.html          |  2003 +--
 ...edureExecutor.ProcedureExecutorListener.html |  2003 +--
 .../ProcedureExecutor.StoppableThread.html      |  2003 +--
 .../procedure2/ProcedureExecutor.Testing.html   |  2003 +--
 ...ProcedureExecutor.TimeoutExecutorThread.html |  2003 +--
 .../ProcedureExecutor.WorkerMonitor.html        |  2003 +--
 .../ProcedureExecutor.WorkerThread.html         |  2003 +--
 .../hbase/procedure2/ProcedureExecutor.html     |  2003 +--
 .../hadoop/hbase/procedure2/ProcedureUtil.html  |    10 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   270 +-
 .../tmpl/master/MasterStatusTmpl.Intf.html      |   270 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   270 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    72 +-
 export_control.html                             |     4 +-
 hbase-annotations/checkstyle.html               |     6 +-
 hbase-annotations/dependencies.html             |     6 +-
 hbase-annotations/dependency-convergence.html   |     6 +-
 hbase-annotations/dependency-info.html          |     6 +-
 hbase-annotations/dependency-management.html    |     6 +-
 hbase-annotations/index.html                    |     6 +-
 hbase-annotations/integration.html              |     6 +-
 hbase-annotations/issue-tracking.html           |     6 +-
 hbase-annotations/license.html                  |     6 +-
 hbase-annotations/mail-lists.html               |     6 +-
 hbase-annotations/plugin-management.html        |     6 +-
 hbase-annotations/plugins.html                  |     6 +-
 hbase-annotations/project-info.html             |     6 +-
 hbase-annotations/project-reports.html          |     6 +-
 hbase-annotations/project-summary.html          |     6 +-
 hbase-annotations/source-repository.html        |     6 +-
 hbase-annotations/team-list.html                |     6 +-
 hbase-archetypes/dependencies.html              |     6 +-
 hbase-archetypes/dependency-convergence.html    |     6 +-
 hbase-archetypes/dependency-info.html           |     6 +-
 hbase-archetypes/dependency-management.html     |     6 +-
 .../hbase-archetype-builder/dependencies.html   |     6 +-
 .../dependency-convergence.html                 |     6 +-
 .../dependency-info.html                        |     6 +-
 .../dependency-management.html                  |     6 +-
 .../hbase-archetype-builder/index.html          |     6 +-
 .../hbase-archetype-builder/integration.html    |     6 +-
 .../hbase-archetype-builder/issue-tracking.html |     6 +-
 .../hbase-archetype-builder/license.html        |     6 +-
 .../hbase-archetype-builder/mail-lists.html     |     6 +-
 .../plugin-management.html                      |     6 +-
 .../hbase-archetype-builder/plugins.html        |     6 +-
 .../hbase-archetype-builder/project-info.html   |     6 +-
 .../project-summary.html                        |     6 +-
 .../source-repository.html                      |     6 +-
 .../hbase-archetype-builder/team-list.html      |     6 +-
 .../hbase-client-project/checkstyle.html        |     6 +-
 .../hbase-client-project/dependencies.html      |     6 +-
 .../dependency-convergence.html                 |     6 +-
 .../hbase-client-project/dependency-info.html   |     6 +-
 .../dependency-management.html                  |     6 +-
 .../hbase-client-project/index.html             |     6 +-
 .../hbase-client-project/integration.html       |     6 +-
 .../hbase-client-project/issue-tracking.html    |     6 +-
 .../hbase-client-project/license.html           |     6 +-
 .../hbase-client-project/mail-lists.html        |     6 +-
 .../hbase-client-project/plugin-management.html |     6 +-
 .../hbase-client-project/plugins.html           |     6 +-
 .../hbase-client-project/project-info.html      |     6 +-
 .../hbase-client-project/project-reports.html   |     6 +-
 .../hbase-client-project/project-summary.html   |     6 +-
 .../hbase-client-project/source-repository.html |     6 +-
 .../hbase-client-project/team-list.html         |     6 +-
 .../hbase-shaded-client-project/checkstyle.html |     6 +-
 .../dependencies.html                           |     6 +-
 .../dependency-convergence.html                 |     6 +-
 .../dependency-info.html                        |     6 +-
 .../dependency-management.html                  |     6 +-
 .../hbase-shaded-client-project/index.html      |     6 +-
 .../integration.html                            |     6 +-
 .../issue-tracking.html                         |     6 +-
 .../hbase-shaded-client-project/license.html    |     6 +-
 .../hbase-shaded-client-project/mail-lists.html |     6 +-
 .../plugin-management.html                      |     6 +-
 .../hbase-shaded-client-project/plugins.html    |     6 +-
 .../project-info.html                           |     6 +-
 .../project-reports.html                        |     6 +-
 .../project-summary.html                        |     6 +-
 .../source-repository.html                      |     6 +-
 .../hbase-shaded-client-project/team-list.html  |     6 +-
 hbase-archetypes/index.html                     |     6 +-
 hbase-archetypes/integration.html               |     6 +-
 hbase-archetypes/issue-tracking.html            |     6 +-
 hbase-archetypes/license.html                   |     6 +-
 hbase-archetypes/mail-lists.html                |     6 +-
 hbase-archetypes/plugin-management.html         |     6 +-
 hbase-archetypes/plugins.html                   |     6 +-
 hbase-archetypes/project-info.html              |     6 +-
 hbase-archetypes/project-summary.html           |     6 +-
 hbase-archetypes/source-repository.html         |     6 +-
 hbase-archetypes/team-list.html                 |     6 +-
 hbase-spark/checkstyle.html                     |     6 +-
 hbase-spark/dependencies.html                   |     6 +-
 hbase-spark/dependency-convergence.html         |     6 +-
 hbase-spark/dependency-info.html                |     6 +-
 hbase-spark/dependency-management.html          |     6 +-
 hbase-spark/index.html                          |     6 +-
 hbase-spark/integration.html                    |     6 +-
 hbase-spark/issue-tracking.html                 |     6 +-
 hbase-spark/license.html                        |     6 +-
 hbase-spark/mail-lists.html                     |     6 +-
 hbase-spark/plugin-management.html              |     6 +-
 hbase-spark/plugins.html                        |     6 +-
 hbase-spark/project-info.html                   |     6 +-
 hbase-spark/project-reports.html                |     6 +-
 hbase-spark/project-summary.html                |     6 +-
 hbase-spark/source-repository.html              |     6 +-
 hbase-spark/team-list.html                      |     6 +-
 index.html                                      |     4 +-
 integration.html                                |     4 +-
 issue-tracking.html                             |     4 +-
 license.html                                    |     4 +-
 mail-lists.html                                 |     4 +-
 metrics.html                                    |     4 +-
 old_news.html                                   |     4 +-
 plugin-management.html                          |     4 +-
 plugins.html                                    |     4 +-
 poweredbyhbase.html                             |     4 +-
 project-info.html                               |     4 +-
 project-reports.html                            |     4 +-
 project-summary.html                            |     4 +-
 pseudo-distributed.html                         |     4 +-
 replication.html                                |     4 +-
 resources.html                                  |     4 +-
 source-repository.html                          |     4 +-
 sponsors.html                                   |     4 +-
 supportingprojects.html                         |     4 +-
 team-list.html                                  |     4 +-
 testdevapidocs/allclasses-frame.html            |     3 +
 testdevapidocs/allclasses-noframe.html          |     3 +
 testdevapidocs/constant-values.html             |    19 +
 testdevapidocs/index-all.html                   |    90 +
 .../class-use/HBaseCommonTestingUtility.html    |     6 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     2 +-
 ...erPerformanceEvaluation.RegionProcedure.html |     2 +-
 ...lerPerformanceEvaluation.TableProcedure.html |     2 +-
 ...ocedureScheduler.TestNamespaceProcedure.html |     2 +-
 ...rProcedureScheduler.TestRegionProcedure.html |     2 +-
 ...erProcedureScheduler.TestTableProcedure.html |     2 +-
 ...reScheduler.TestTableProcedureWithEvent.html |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    10 +-
 .../ProcedureTestingUtility.NoopProcedure.html  |     2 +-
 .../ProcedureTestingUtility.TestProcedure.html  |     2 +-
 .../TestChildProcedures.TestChildProcedure.html |     2 +-
 .../TestChildProcedures.TestRootProcedure.html  |     2 +-
 ...ocedureEvents.TestTimeoutEventProcedure.html |     2 +-
 ...stProcedureExecution.TestFaultyRollback.html |     2 +-
 ...cedureExecution.TestSequentialProcedure.html |     2 +-
 ...tion.TestWaitingProcedure.TestWaitChild.html |     2 +-
 ...ProcedureExecution.TestWaitingProcedure.html |     2 +-
 ...TestProcedureExecutor.BusyWaitProcedure.html |     2 +-
 ...stProcedureInMemoryChore.TestLatchChore.html |     2 +-
 .../TestProcedureInMemoryChore.TestProcEnv.html |     4 +-
 .../TestProcedureMetrics.ProcedureMetrics.html  |   615 +
 .../TestProcedureMetrics.TestProcEnv.html       |   293 +
 .../hbase/procedure2/TestProcedureMetrics.html  |   586 +
 ...tProcedureNonce.TestSingleStepProcedure.html |     2 +-
 .../hbase/procedure2/TestProcedureNonce.html    |     4 +-
 ...ProcedureRecovery.BaseTestStepProcedure.html |     2 +-
 ...y.TestMultiStepProcedure.Step1Procedure.html |     2 +-
 ...y.TestMultiStepProcedure.Step2Procedure.html |     2 +-
 ...rocedureRecovery.TestMultiStepProcedure.html |     2 +-
 ...ocedureRecovery.TestSingleStepProcedure.html |     2 +-
 ...edureRecovery.TestStateMachineProcedure.html |     2 +-
 .../TestProcedureReplayOrder.TestProcedure.html |     2 +-
 ...dureReplayOrder.TestSingleStepProcedure.html |     2 +-
 ...ocedureReplayOrder.TestTwoStepProcedure.html |     2 +-
 ...dulerConcurrency.TestProcedureWithEvent.html |     2 +-
 ...estProcedureSuspended.TestLockProcedure.html |     2 +-
 .../TestProcedureToString.BasicProcedure.html   |     2 +-
 ...tring.DoublingStateStringBasicProcedure.html |     2 +-
 ...ureToString.SimpleStateMachineProcedure.html |     2 +-
 ...eUtil.TestProcedureNoDefaultConstructor.html |     2 +-
 ...teMachineProcedure.SimpleChildProcedure.html |    10 +-
 .../TestStateMachineProcedure.TestProcEnv.html  |    10 +-
 ...stStateMachineProcedure.TestSMProcedure.html |    16 +-
 ...teMachineProcedure.TestSMProcedureState.html |    10 +-
 .../procedure2/TestStateMachineProcedure.html   |    34 +-
 ...eldProcedures.TestStateMachineProcedure.html |     2 +-
 .../TestYieldProcedures.TestYieldProcedure.html |     2 +-
 .../TestProcedureMetrics.ProcedureMetrics.html  |   183 +
 .../TestProcedureMetrics.TestProcEnv.html       |   209 +
 .../class-use/TestProcedureMetrics.html         |   125 +
 .../hadoop/hbase/procedure2/package-frame.html  |     3 +
 .../hbase/procedure2/package-summary.html       |    82 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     5 +-
 .../hadoop/hbase/procedure2/package-use.html    |     6 +
 ...LProcedureStore.TestSequentialProcedure.html |     2 +-
 .../hadoop/hbase/regionserver/package-tree.html |     2 +-
 ...tAccessController.TestTableDDLProcedure.html |     2 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     4 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     4 +-
 testdevapidocs/overview-tree.html               |     3 +
 .../TestProcedureMetrics.ProcedureMetrics.html  |   326 +
 .../TestProcedureMetrics.TestProcEnv.html       |   326 +
 .../hbase/procedure2/TestProcedureMetrics.html  |   326 +
 ...teMachineProcedure.SimpleChildProcedure.html |   347 +-
 .../TestStateMachineProcedure.TestProcEnv.html  |   347 +-
 ...stStateMachineProcedure.TestSMProcedure.html |   347 +-
 ...teMachineProcedure.TestSMProcedureState.html |   347 +-
 .../procedure2/TestStateMachineProcedure.html   |   347 +-
 314 files changed, 24846 insertions(+), 21366 deletions(-)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 902b1e0..22784b5 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.6, based on Prawn 1.2.1)
 /Producer (Apache HBase Team)
-/CreationDate (D:20170413211907+00'00')
-/ModDate (D:20170413211907+00'00')
+/CreationDate (D:20170415144703+00'00')
+/ModDate (D:20170415144703+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/apache_hbase_reference_guide.pdfmarks
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdfmarks b/apache_hbase_reference_guide.pdfmarks
index 1616ad7..aa2ad10 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:20170413212030)
-  /CreationDate (D:20170413212030)
+  /ModDate (D:20170415144828)
+  /CreationDate (D:20170415144828)
   /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/a949969b/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 4b32b55..4b0f0be 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -6683,8 +6683,6 @@
 <dd>
 <div class="block">Returns the start row.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ProcedureInfo.html#getStartTime--">getStartTime()</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="memberNameLink"><a href="org/apache/hadoop/hbase/client/Result.html#getStats--">getStats()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ScheduledChore.html#getStopper--">getStopper()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></dt>
@@ -6728,6 +6726,8 @@
 <dd>
 <div class="block">Gets the input stream instance.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ProcedureInfo.html#getSubmittedTime--">getSubmittedTime()</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="memberNameLink"><a href="org/apache/hadoop/hbase/io/crypto/CipherProvider.html#getSupportedCiphers--">getSupportedCiphers()</a></span> - Method in interface org.apache.hadoop.hbase.io.crypto.<a href="org/apache/hadoop/hbase/io/crypto/CipherProvider.html" title="interface in org.apache.hadoop.hbase.io.crypto">CipherProvider</a></dt>
 <dd>
 <div class="block">Return the set of Ciphers supported by this provider</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 d061021..2dbd7b1 100644
--- a/apidocs/org/apache/hadoop/hbase/ProcedureInfo.html
+++ b/apidocs/org/apache/hadoop/hbase/ProcedureInfo.html
@@ -144,7 +144,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable
              org.apache.hadoop.hbase.util.NonceKey&nbsp;nonceKey,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;exception,
              long&nbsp;lastUpdate,
-             long&nbsp;startTime,
+             long&nbsp;submittedTime,
              byte[]&nbsp;result)</code>&nbsp;</td>
 </tr>
 </table>
@@ -212,7 +212,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable
 </tr>
 <tr id="i12" class="altColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#getStartTime--">getStartTime</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#getSubmittedTime--">getSubmittedTime</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i13" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
@@ -271,7 +271,7 @@ public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.
                                                 org.apache.hadoop.hbase.util.NonceKey&nbsp;nonceKey,
                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;exception,
                                                 long&nbsp;lastUpdate,
-                                                long&nbsp;startTime,
+                                                long&nbsp;submittedTime,
                                                 byte[]&nbsp;result)</pre>
 </li>
 </ul>
@@ -426,13 +426,13 @@ public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.
 <pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.167">getResult</a>()</pre>
 </li>
 </ul>
-<a name="getStartTime--">
+<a name="getSubmittedTime--">
 <!--   -->
 </a>
 <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.171">getStartTime</a>()</pre>
+<h4>getSubmittedTime</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.171">getSubmittedTime</a>()</pre>
 </li>
 </ul>
 <a name="getLastUpdate--">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/apidocs/org/apache/hadoop/hbase/class-use/ProcedureState.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/ProcedureState.html b/apidocs/org/apache/hadoop/hbase/class-use/ProcedureState.html
index 4d5908e..d34be3b 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/ProcedureState.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/ProcedureState.html
@@ -136,7 +136,7 @@ the order they are declared.</div>
              org.apache.hadoop.hbase.util.NonceKey&nbsp;nonceKey,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;exception,
              long&nbsp;lastUpdate,
-             long&nbsp;startTime,
+             long&nbsp;submittedTime,
              byte[]&nbsp;result)</code>&nbsp;</td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 b91439c..8cf4182 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/ProcedureInfo.html
@@ -47,7 +47,7 @@
 <span class="sourceLineNo">039</span>  private final NonceKey nonceKey;<a name="line.39"></a>
 <span class="sourceLineNo">040</span>  private final IOException exception;<a name="line.40"></a>
 <span class="sourceLineNo">041</span>  private final long lastUpdate;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>  private final long startTime;<a name="line.42"></a>
+<span class="sourceLineNo">042</span>  private final long submittedTime;<a name="line.42"></a>
 <span class="sourceLineNo">043</span>  private final byte[] result;<a name="line.43"></a>
 <span class="sourceLineNo">044</span><a name="line.44"></a>
 <span class="sourceLineNo">045</span>  private long clientAckTime = -1;<a name="line.45"></a>
@@ -62,7 +62,7 @@
 <span class="sourceLineNo">054</span>      final NonceKey nonceKey,<a name="line.54"></a>
 <span class="sourceLineNo">055</span>      final IOException exception,<a name="line.55"></a>
 <span class="sourceLineNo">056</span>      final long lastUpdate,<a name="line.56"></a>
-<span class="sourceLineNo">057</span>      final long startTime,<a name="line.57"></a>
+<span class="sourceLineNo">057</span>      final long submittedTime,<a name="line.57"></a>
 <span class="sourceLineNo">058</span>      final byte[] result) {<a name="line.58"></a>
 <span class="sourceLineNo">059</span>    this.procId = procId;<a name="line.59"></a>
 <span class="sourceLineNo">060</span>    this.procName = procName;<a name="line.60"></a>
@@ -71,7 +71,7 @@
 <span class="sourceLineNo">063</span>    this.parentId = parentId;<a name="line.63"></a>
 <span class="sourceLineNo">064</span>    this.nonceKey = nonceKey;<a name="line.64"></a>
 <span class="sourceLineNo">065</span>    this.lastUpdate = lastUpdate;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    this.startTime = startTime;<a name="line.66"></a>
+<span class="sourceLineNo">066</span>    this.submittedTime = submittedTime;<a name="line.66"></a>
 <span class="sourceLineNo">067</span><a name="line.67"></a>
 <span class="sourceLineNo">068</span>    // If the procedure is completed, we should treat exception and result differently<a name="line.68"></a>
 <span class="sourceLineNo">069</span>    this.exception = exception;<a name="line.69"></a>
@@ -82,7 +82,7 @@
 <span class="sourceLineNo">074</span>      justification="Intentional; calling super class clone doesn't make sense here.")<a name="line.74"></a>
 <span class="sourceLineNo">075</span>  public ProcedureInfo clone() {<a name="line.75"></a>
 <span class="sourceLineNo">076</span>    return new ProcedureInfo(procId, procName, procOwner, procState, parentId, nonceKey,<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      exception, lastUpdate, startTime, result);<a name="line.77"></a>
+<span class="sourceLineNo">077</span>      exception, lastUpdate, submittedTime, result);<a name="line.77"></a>
 <span class="sourceLineNo">078</span>  }<a name="line.78"></a>
 <span class="sourceLineNo">079</span><a name="line.79"></a>
 <span class="sourceLineNo">080</span>  @Override<a name="line.80"></a>
@@ -104,10 +104,10 @@
 <span class="sourceLineNo">096</span>    sb.append(procState);<a name="line.96"></a>
 <span class="sourceLineNo">097</span><a name="line.97"></a>
 <span class="sourceLineNo">098</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    sb.append(", startTime=");<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    sb.append(StringUtils.formatTime(now - startTime));<a name="line.100"></a>
+<span class="sourceLineNo">099</span>    sb.append(", submittedTime=");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    sb.append(StringUtils.formatTime(now - submittedTime));<a name="line.100"></a>
 <span class="sourceLineNo">101</span>    sb.append(" ago, lastUpdate=");<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    sb.append(StringUtils.formatTime(now - startTime));<a name="line.102"></a>
+<span class="sourceLineNo">102</span>    sb.append(StringUtils.formatTime(now - submittedTime));<a name="line.102"></a>
 <span class="sourceLineNo">103</span>    sb.append(" ago");<a name="line.103"></a>
 <span class="sourceLineNo">104</span><a name="line.104"></a>
 <span class="sourceLineNo">105</span>    if (isFailed()) {<a name="line.105"></a>
@@ -176,8 +176,8 @@
 <span class="sourceLineNo">168</span>    return result;<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>  public long getStartTime() {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    return startTime;<a name="line.172"></a>
+<span class="sourceLineNo">171</span>  public long getSubmittedTime() {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    return submittedTime;<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>  public long getLastUpdate() {<a name="line.175"></a>
@@ -185,7 +185,7 @@
 <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>  public long executionTime() {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    return lastUpdate - startTime;<a name="line.180"></a>
+<span class="sourceLineNo">180</span>    return lastUpdate - submittedTime;<a name="line.180"></a>
 <span class="sourceLineNo">181</span>  }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
 <span class="sourceLineNo">183</span>  @InterfaceAudience.Private<a name="line.183"></a>

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 a1495ff..0c11099 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
@@ -839,1019 +839,1030 @@
 <span class="sourceLineNo">831</span>  private long pushProcedure(final Procedure proc) {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>    final long currentProcId = proc.getProcId();<a name="line.832"></a>
 <span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the rollback stack for the procedure<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    RootProcedureState stack = new RootProcedureState();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    rollbackStack.put(currentProcId, stack);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // Submit the new subprocedures<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    assert !procedures.containsKey(currentProcId);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    procedures.put(currentProcId, proc);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    sendProcedureAddedNotification(currentProcId);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    scheduler.addBack(proc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return proc.getProcId();<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Send an abort notification the specified procedure.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * @param procId the procedure to abort<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  public boolean abort(final long procId) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    return abort(procId, true);<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>   * Send an abort notification the specified procedure.<a name="line.857"></a>
-<span class="sourceLineNo">858</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>   * @param procId the procedure to abort<a name="line.859"></a>
-<span class="sourceLineNo">860</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    final Procedure proc = procedures.get(procId);<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (proc != null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        return false;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return proc.abort(getEnvironment());<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    return false;<a name="line.871"></a>
-<span class="sourceLineNo">872</span>  }<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>  //  Executor query helpers<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  // ==========================================================================<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public Procedure getProcedure(final long procId) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    return procedures.get(procId);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  }<a name="line.879"></a>
-<span class="sourceLineNo">880</span><a name="line.880"></a>
-<span class="sourceLineNo">881</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    final Procedure proc = getProcedure(procId);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (clazz.isInstance(proc)) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      return (T)proc;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    return null;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  public ProcedureInfo getResult(final long procId) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    return completed.get(procId);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>  }<a name="line.891"></a>
-<span class="sourceLineNo">892</span><a name="line.892"></a>
-<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * Return true if the procedure is finished.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * Use getResult() to check the state or get the result data.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @param procId the ID of the procedure to check<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  public boolean isFinished(final long procId) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    return !procedures.containsKey(procId);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>  }<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * Return true if the procedure is started.<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   * @param procId the ID of the procedure to check<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   */<a name="line.908"></a>
-<span class="sourceLineNo">909</span>  public boolean isStarted(final long procId) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    final Procedure proc = procedures.get(procId);<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (proc == null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      return completed.get(procId) != null;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return proc.wasExecuted();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param procId the ID of the procedure to remove<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   */<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public void removeResult(final long procId) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    final ProcedureInfo result = completed.get(procId);<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    if (result == null) {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      if (LOG.isDebugEnabled()) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      }<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      return;<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>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>  }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    ProcedureInfo result = completed.get(procId);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    Procedure proc = null;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    if (result == null) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      proc = procedures.get(procId);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      if (proc == null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        result = completed.get(procId);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    return new Pair(result, proc);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Check if the user is this procedure's owner<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   * @param procId the target procedure<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param user the user<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   * @return true if the user is the owner of the procedure,<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   *   false otherwise or the owner is unknown.<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   */<a name="line.953"></a>
-<span class="sourceLineNo">954</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    if (user == null) return false;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    final Procedure proc = procedures.get(procId);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    if (proc != null) {<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      return proc.getOwner().equals(user.getShortName());<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>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    if (procInfo == null) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>      // At this time, we cannot check the owner of the procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return false;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  }<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>   * List procedures.<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   * @return the procedures in a list<a name="line.973"></a>
-<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      // it could complete after we walk through procedures list and insert into<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      procedureLists.add(e.getValue());<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    }<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return procedureLists;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  // ==========================================================================<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  //  Listeners helpers<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  // ==========================================================================<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    this.listeners.add(listener);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  }<a name="line.995"></a>
-<span class="sourceLineNo">996</span><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    return this.listeners.remove(listener);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>  }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    if (!this.listeners.isEmpty()) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          listener.procedureLoaded(procId);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>        } catch (Throwable e) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<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>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    if (!this.listeners.isEmpty()) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>          listener.procedureAdded(procId);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        } catch (Throwable e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        }<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>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    if (!this.listeners.isEmpty()) {<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>        try {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          listener.procedureFinished(procId);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>        } catch (Throwable e) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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><a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  // ==========================================================================<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  //  Procedure IDs helpers<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  // ==========================================================================<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  private long nextProcId() {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    long procId = lastProcId.incrementAndGet();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    if (procId &lt; 0) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>        procId = lastProcId.get();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>        if (procId &gt;= 0)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>          break;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      while (procedures.containsKey(procId)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        procId = lastProcId.incrementAndGet();<a name="line.1049"></a>
+<span class="sourceLineNo">834</span>    // Update metrics on start of a procedure<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>    // Create the rollback stack for the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    RootProcedureState stack = new RootProcedureState();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    rollbackStack.put(currentProcId, stack);<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // Submit the new subprocedures<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    assert !procedures.containsKey(currentProcId);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    procedures.put(currentProcId, proc);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    sendProcedureAddedNotification(currentProcId);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    scheduler.addBack(proc);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    return proc.getProcId();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Send an abort notification the specified procedure.<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @param procId the procedure to abort<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public boolean abort(final long procId) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    return abort(procId, true);<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>  /**<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   * Send an abort notification the specified procedure.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.861"></a>
+<span class="sourceLineNo">862</span>   * @param procId the procedure to abort<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    final Procedure proc = procedures.get(procId);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    if (proc != null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return false;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>      return proc.abort(getEnvironment());<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    return false;<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>  //  Executor query helpers<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  // ==========================================================================<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  public Procedure getProcedure(final long procId) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    return procedures.get(procId);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    final Procedure proc = getProcedure(procId);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (clazz.isInstance(proc)) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      return (T)proc;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    return null;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>  }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>  public ProcedureInfo getResult(final long procId) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    return completed.get(procId);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>  }<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>   * Return true if the procedure is finished.<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Use getResult() to check the state or get the result data.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @param procId the ID of the procedure to check<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>   */<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public boolean isFinished(final long procId) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    return !procedures.containsKey(procId);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * Return true if the procedure is started.<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * @param procId the ID of the procedure to check<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  public boolean isStarted(final long procId) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    final Procedure proc = procedures.get(procId);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    if (proc == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      return completed.get(procId) != null;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return proc.wasExecuted();<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param procId the ID of the procedure to remove<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  public void removeResult(final long procId) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>    final ProcedureInfo result = completed.get(procId);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    if (result == null) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      if (LOG.isDebugEnabled()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      return;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<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>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    ProcedureInfo result = completed.get(procId);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    Procedure proc = null;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    if (result == null) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      proc = procedures.get(procId);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      if (proc == null) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        result = completed.get(procId);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    return new Pair(result, proc);<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>   * Check if the user is this procedure's owner<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   * @param procId the target procedure<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param user the user<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return true if the user is the owner of the procedure,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   *   false otherwise or the owner is unknown.<a name="line.955"></a>
+<span class="sourceLineNo">956</span>   */<a name="line.956"></a>
+<span class="sourceLineNo">957</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    if (user == null) return false;<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>    final Procedure proc = procedures.get(procId);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    if (proc != null) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      return proc.getOwner().equals(user.getShortName());<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    if (procInfo == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      // At this time, we cannot check the owner of the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      return false;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<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>  /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>   * List procedures.<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * @return the procedures in a list<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      // it could complete after we walk through procedures list and insert into<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      procedureLists.add(e.getValue());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    return procedureLists;<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>  //  Listeners helpers<a name="line.994"></a>
+<span class="sourceLineNo">995</span>  // ==========================================================================<a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    this.listeners.add(listener);<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>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    return this.listeners.remove(listener);<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>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    if (!this.listeners.isEmpty()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          listener.procedureLoaded(procId);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        } catch (Throwable e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    if (!this.listeners.isEmpty()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          listener.procedureAdded(procId);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        } catch (Throwable e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    if (!this.listeners.isEmpty()) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        try {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          listener.procedureFinished(procId);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        } catch (Throwable e) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  // ==========================================================================<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>  //  Procedure IDs helpers<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  // ==========================================================================<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>  private long nextProcId() {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    long procId = lastProcId.incrementAndGet();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    if (procId &lt; 0) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        procId = lastProcId.get();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        if (procId &gt;= 0)<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>          break;<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return procId;<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>  @VisibleForTesting<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  protected long getLastProcId() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return lastProcId.get();<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>  @VisibleForTesting<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span><a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>  // ==========================================================================<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  //  Executions<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  // ==========================================================================<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  private void executeProcedure(final Procedure proc) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    if (rootProcId == null) {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      executeRollback(proc);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      return;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    if (procStack == null) return;<a name="line.1082"></a>
+<span class="sourceLineNo">1051</span>      while (procedures.containsKey(procId)) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        procId = lastProcId.incrementAndGet();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    return procId;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>  @VisibleForTesting<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>  protected long getLastProcId() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    return lastProcId.get();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>  }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  @VisibleForTesting<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>  }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  // ==========================================================================<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>  //  Executions<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  // ==========================================================================<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>  private void executeProcedure(final Procedure proc) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    if (rootProcId == null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      executeRollback(proc);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>      return;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    }<a name="line.1082"></a>
 <span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    do {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      // Try to acquire the execution<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (!procStack.acquire(proc)) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        if (procStack.setRollback()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>            case LOCK_ACQUIRED:<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>                break;<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>            case LOCK_YIELD_WAIT:<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>              procStack.unsetRollback();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>              scheduler.yield(proc);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>              break;<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>            case LOCK_EVENT_WAIT:<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>              procStack.unsetRollback();<a name="line.1097"></a>
+<span class="sourceLineNo">1084</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    if (procStack == null) return;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    do {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>      // Try to acquire the execution<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>      if (!procStack.acquire(proc)) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        if (procStack.setRollback()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>            case LOCK_ACQUIRED:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>            case LOCK_YIELD_WAIT:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>              procStack.unsetRollback();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>              scheduler.yield(proc);<a name="line.1097"></a>
 <span class="sourceLineNo">1098</span>              break;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>            default:<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>              throw new UnsupportedOperationException();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>          }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        } else {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>          // if we can't rollback means that some child is still running.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>          // the rollback will be executed after all the children are done.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          if (!proc.wasExecuted()) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>            switch (executeRollback(proc)) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>              case LOCK_ACQUIRED:<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>                break;<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>              case LOCK_YIELD_WAIT:<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>                scheduler.yield(proc);<a name="line.1111"></a>
+<span class="sourceLineNo">1099</span>            case LOCK_EVENT_WAIT:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>              procStack.unsetRollback();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>              break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>            default:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>              throw new UnsupportedOperationException();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>          // if we can't rollback means that some child is still running.<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>          // the rollback will be executed after all the children are done.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>          if (!proc.wasExecuted()) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>            switch (executeRollback(proc)) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>              case LOCK_ACQUIRED:<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>                break;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>              case LOCK_EVENT_WAIT:<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>                break;<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>              default:<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>                throw new UnsupportedOperationException();<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>        break;<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>      }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span><a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      // Execute the procedure<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      switch (acquireLock(proc)) {<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>        case LOCK_ACQUIRED:<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>          execProcedure(procStack, proc);<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>          releaseLock(proc, false);<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>          break;<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>        case LOCK_YIELD_WAIT:<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          scheduler.yield(proc);<a name="line.1131"></a>
+<span class="sourceLineNo">1113</span>              case LOCK_YIELD_WAIT:<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                scheduler.yield(proc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>              case LOCK_EVENT_WAIT:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                break;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>              default:<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                throw new UnsupportedOperationException();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>            }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        break;<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>      // Execute the procedure<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      switch (acquireLock(proc)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        case LOCK_ACQUIRED:<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>          execProcedure(procStack, proc);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          releaseLock(proc, false);<a name="line.1131"></a>
 <span class="sourceLineNo">1132</span>          break;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        case LOCK_EVENT_WAIT:<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>          // someone will wake us up when the lock is available<a name="line.1134"></a>
+<span class="sourceLineNo">1133</span>        case LOCK_YIELD_WAIT:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          scheduler.yield(proc);<a name="line.1134"></a>
 <span class="sourceLineNo">1135</span>          break;<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        default:<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>          throw new UnsupportedOperationException();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>      procStack.release(proc);<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      // useful to test the procedure recovery.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (testing != null &amp;&amp; !isRunning()) {<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>      if (proc.isSuccess()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>        if (LOG.isDebugEnabled()) {<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        // Finalize the procedure state<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        if (proc.getProcId() == rootProcId) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>          procedureFinished(proc);<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        } else {<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          execCompletionCleanup(proc);<a name="line.1155"></a>
+<span class="sourceLineNo">1136</span>        case LOCK_EVENT_WAIT:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          // someone will wake us up when the lock is available<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>          break;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        default:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>          throw new UnsupportedOperationException();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      procStack.release(proc);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // useful to test the procedure recovery.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      if (testing != null &amp;&amp; !isRunning()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        break;<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>      if (proc.isSuccess()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        // update metrics on finishing the procedure<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        if (LOG.isDebugEnabled()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1155"></a>
 <span class="sourceLineNo">1156</span>        }<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>        break;<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      }<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    } while (procStack.isFailed());<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    final TEnvironment env = getEnvironment();<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      return LockState.LOCK_ACQUIRED;<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    return proc.doAcquireLock(env);<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    final TEnvironment env = getEnvironment();<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    // for how the framework works, we know that we will always have the lock<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (force || !proc.holdLock(env)) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      proc.doReleaseLock(env);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * Execute the rollback of the full procedure stack.<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * finished to user, and the result will be the fatal exception.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   */<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    if (exception == null) {<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>      exception = procStack.getException();<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      rootProc.setFailure(exception);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      store.update(rootProc);<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span><a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span><a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>    int stackTail = subprocStack.size();<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    boolean reuseLock = false;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    while (stackTail --&gt; 0) {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span><a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      LockState lockState;<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>        // queue waiting for the lock availability<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>        return lockState;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      }<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span><a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      lockState = executeRollback(proc);<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // If the next procedure is the same to this one<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      // we can avoid to lock/unlock each step<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      if (!reuseLock) {<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>        releaseLock(proc, false);<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // useful to test the procedure recovery.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      if (abortRollback) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>        return lockState;<a name="line.1226"></a>
+<span class="sourceLineNo">1157</span>        // Finalize the procedure state<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        if (proc.getProcId() == rootProcId) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>          procedureFinished(proc);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>          execCompletionCleanup(proc);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>      }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>    } while (procStack.isFailed());<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    final TEnvironment env = getEnvironment();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      return LockState.LOCK_ACQUIRED;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    return proc.doAcquireLock(env);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    final TEnvironment env = getEnvironment();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    // for how the framework works, we know that we will always have the lock<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    if (force || !proc.holdLock(env)) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      proc.doReleaseLock(env);<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><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Execute the rollback of the full procedure stack.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * finished to user, and the result will be the fatal exception.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (exception == null) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      exception = procStack.getException();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      rootProc.setFailure(exception);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      store.update(rootProc);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>    int stackTail = subprocStack.size();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    boolean reuseLock = false;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    while (stackTail --&gt; 0) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      LockState lockState;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        // queue waiting for the lock availability<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        return lockState;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      lockState = executeRollback(proc);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      // If the next procedure is the same to this one<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>      // we can avoid to lock/unlock each step<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      if (!reuseLock) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        releaseLock(proc, false);<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>      subprocStack.remove(stackTail);<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      // if the procedure is kind enough to pass the slot to someone else, yield<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      if (proc.isYieldAfterExecutionStep(getEnvironment())) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>        return LockState.LOCK_YIELD_WAIT;<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      }<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span><a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      if (proc != rootProc) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        execCompletionCleanup(proc);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span><a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // Finalize the procedure state<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    LOG.info("Rolled back " + rootProc +<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>             " exec-time=" + StringUtils.humanTimeDiff(rootProc.elapsedTime()));<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    procedureFinished(rootProc);<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    return LockState.LOCK_ACQUIRED;<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span><a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  /**<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * Execute the rollback of the procedure step.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   * It updates the store with the new state (stack index)<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>   * or will remove completly the procedure in case it is a child.<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  private LockState executeRollback(final Procedure proc) {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>    try {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      proc.doRollback(getEnvironment());<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    } catch (IOException e) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      if (LOG.isDebugEnabled()) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        LOG.debug("Roll back attempt failed for " + proc, e);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      }<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    } catch (InterruptedException e) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      handleInterruptedException(proc, e);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    } catch (Throwable e) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      // Catch NullPointerExceptions or similar errors...<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>      LOG.fatal("CODE-BUG: Uncatched runtime exception for procedure: " + proc, e);<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    // allows to kill the executor before something is stored to the wal.<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>    // useful to test the procedure recovery.<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    if (testing != null &amp;&amp; testing.shouldKillBeforeStoreUpdate()) {<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      LOG.debug("TESTING: Kill before store update");<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      stop();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    if (proc.removeStackIndex()) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      proc.setState(ProcedureState.ROLLEDBACK);<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>      if (proc.hasParent()) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>        store.delete(proc.getProcId());<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        procedures.remove(proc.getProcId());<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      } else {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        final long[] childProcIds = rollbackStack.get(proc.getProcId()).getSubprocedureIds();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>        if (childProcIds != null) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>          store.delete(proc, childProcIds);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        } else {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          store.update(proc);<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>    } else {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      store.update(proc);<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return LockState.LOCK_ACQUIRED;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  /**<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   * Executes the specified procedure<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   *  - calls the doExecute() of the procedure<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>   *  - if the procedure execution didn't fail (e.g. invalid user input)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   *     - ...and returned subprocedures<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>   *        - the subprocedures are initialized.<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   *        - the subprocedures are added to the store<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   *        - the subprocedures are added to the runnable queue<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *        - the procedure is now in a WAITING state, waiting for the subprocedures to complete<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   *     - ...if there are no subprocedure<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>   *        - the procedure completed successfully<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>   *        - if there is a parent (WAITING)<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>   *            - the parent state will be set to RUNNABLE<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   *  - in case of failure<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   *    - the store is updated with the new state<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   *    - the executor (caller of this method) will start the rollback of the procedure<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   */<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  private void execProcedure(final RootProcedureState procStack, final Procedure procedure) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>    Preconditions.checkArgument(procedure.getState() == ProcedureState.RUNNABLE);<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Execute the procedure<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    boolean suspended = false;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    boolean reExecute = false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    Procedure[] subprocs = null;<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>    do {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      reExecute = false;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      try {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        subprocs = procedure.doExecute(getEnvironment());<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        if (subprocs != null &amp;&amp; subprocs.length == 0) {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          subprocs = null;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      } catch (ProcedureSuspendedException e) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        suspended = true;<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      } catch (ProcedureYieldException e) {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        if (LOG.isTraceEnabled()) {<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>          LOG.trace("Yield " + procedure + ": " + e.getMessage());<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        scheduler.yield(procedure);<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        return;<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>      } catch (InterruptedException e) {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        handleInterruptedException(procedure, e);<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        scheduler.yield(procedure);<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        return;<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      } catch (Throwable e) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>        // Catch NullPointerExceptions or similar errors...<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        String msg = "CODE-BUG: Uncaught runtime exception: " + procedure;<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        LOG.error(msg, e);<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        procedure.setFailure(new RemoteProcedureException(msg, e));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span><a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>      if (!procedure.isFailed()) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        if (subprocs != null) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>          if (subprocs.length == 1 &amp;&amp; subprocs[0] == procedure) {<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>            // quick-shortcut for a state machine like procedure<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>            subprocs = null;<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            reExecute = true;<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          } else {

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
index 0842655..e92a58a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
@@ -369,7 +369,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
index 2277b39..06e501b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
@@ -410,7 +410,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
index 8ed3e2d..ea1a6a5 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
@@ -404,7 +404,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/MergeTableRegionsProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/MergeTableRegionsProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/MergeTableRegionsProcedure.html
index 1ee0858..a1be999 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/MergeTableRegionsProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/MergeTableRegionsProcedure.html
@@ -523,7 +523,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState<
 /a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
 ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.
 hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#up
 dateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">d
 oExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 l#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmit
 tedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.h
 adoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.html
index a14db2c..19f956e 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.html
@@ -400,7 +400,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">g
 etProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/had
 oop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoo
 p/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#
 setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">was
 Executed</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">g
 etProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../.
 ./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/ap
 ache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedu
 re.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/
 apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hado
 op/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 e4ec821..54a01a3 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/Procedure.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":6,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":6,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":9,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":9,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":6,"i50":6,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10};
+var methods = {"i0":6,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":6,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":6,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":9,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":9,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":6,"i50":6,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -123,7 +123,7 @@ public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/p
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;</pre>
 <div class="block">Base Procedure class responsible to handle the Procedure Metadata
- e.g. state, startTime, lastUpdate, stack-indexes, ...
+ e.g. state, submittedTime, lastUpdate, stack-indexes, ...
 
  execute() is called each time the procedure is executed.
  it may be called multiple times in case of failure and restart, so the
@@ -225,13 +225,13 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#stackIndexes">stackIndexes</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#startTime">startTime</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#state">state</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#submittedTime">submittedTime</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#timeout">timeout</a></span></code>&nbsp;</td>
@@ -409,13 +409,13 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i27" class="rowColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i28" class="altColor">
 <td class="colFirst"><code>protected org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a></span>()</code>&nbsp;</td>
 </tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a></span>()</code>&nbsp;</td>
+</tr>
 <tr id="i29" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a></span>()</code>&nbsp;</td>
@@ -594,14 +594,14 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 </tr>
 <tr id="i64" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a></span>(long&nbsp;startTime)</code>
-<div class="block">Called on store load to initialize the Procedure internals after
- the creation/deserialization.</div>
-</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;state)</code>&nbsp;</td>
 </tr>
 <tr id="i65" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;state)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a></span>(long&nbsp;submittedTime)</code>
+<div class="block">Called on store load to initialize the Procedure internals after
+ the creation/deserialization.</div>
+</td>
 </tr>
 <tr id="i66" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
@@ -657,11 +657,25 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 </tr>
 <tr id="i75" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env,
+                     long&nbsp;runtime,
+                     boolean&nbsp;success)</code>
+<div class="block">This function will be called just after procedure execution is finished.</div>
+</td>
+</tr>
+<tr id="i76" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</code>
+<div class="block">This function will be called just when procedure is submitted for execution.</div>
+</td>
+</tr>
+<tr id="i77" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a></span>()</code>
 <div class="block">Called by ProcedureExecutor after each time a procedure step is executed.</div>
 </td>
 </tr>
-<tr id="i76" class="altColor">
+<tr id="i78" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></span>()</code>&nbsp;</td>
 </tr>
@@ -758,13 +772,13 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.75">procId</a></pre>
 </li>
 </ul>
-<a name="startTime">
+<a name="submittedTime">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>startTime</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.76">startTime</a></pre>
+<h4>submittedTime</h4>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.76">submittedTime</a></pre>
 </li>
 </ul>
 <a name="state">
@@ -1125,13 +1139,51 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 </dl>
 </li>
 </ul>
+<a name="updateMetricsOnSubmit-java.lang.Object-">
+<!--   -->
+</a><a name="updateMetricsOnSubmit-TEnvironment-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateMetricsOnSubmit</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.247">updateMetricsOnSubmit</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<div class="block">This function will be called just when procedure is submitted for execution. Override this
+ method to update the metrics at the beginning of the procedure</div>
+</li>
+</ul>
+<a name="updateMetricsOnFinish-java.lang.Object-long-boolean-">
+<!--   -->
+</a><a name="updateMetricsOnFinish-TEnvironment-long-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateMetricsOnFinish</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.261">updateMetricsOnFinish</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env,
+                                     long&nbsp;runtime,
+                                     boolean&nbsp;success)</pre>
+<div class="block">This function will be called just after procedure execution is finished. Override this method
+ to update metrics at the end of the procedure
+
+ TODO: As any of the sub-procedures on failure rolls back all procedures in the stack,
+ including successfully finished siblings, this function may get called twice in certain
+ cases for certain procedures. Explore further if this can be called once.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>env</code> - </dd>
+<dd><code>runtime</code> - - Runtime of the procedure in milliseconds</dd>
+<dd><code>success</code> - - true if procedure is completed successfully</dd>
+</dl>
+</li>
+</ul>
 <a name="toString--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.244">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.265">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1144,7 +1196,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringSimpleSB</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.254">toStringSimpleSB</a>()</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.275">toStringSimpleSB</a>()</pre>
 <div class="block">Build the StringBuilder for the simple form of
  procedure string.</div>
 <dl>
@@ -1159,7 +1211,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringDetails</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.287">toStringDetails</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.308">toStringDetails</a>()</pre>
 <div class="block">Extend the toString() information with more procedure
  details</div>
 </li>
@@ -1170,7 +1222,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringClass</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.306">toStringClass</a>()</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.327">toStringClass</a>()</pre>
 </li>
 </ul>
 <a name="toStringState-java.lang.StringBuilder-">
@@ -1179,7 +1231,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringState</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.316">toStringState</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.337">toStringState</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</pre>
 <div class="block">Called from <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--"><code>toString()</code></a> when interpolating <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2"><code>Procedure</code></a> state</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1193,7 +1245,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringClassDetails</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.325">toStringClassDetails</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.346">toStringClassDetails</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</pre>
 <div class="block">Extend the toString() information with the procedure details
  e.g. className and parameters</div>
 <dl>
@@ -1208,7 +1260,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.336">getProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.357">getProcId</a>()</pre>
 </li>
 </ul>
 <a name="hasParent--">
@@ -1217,7 +1269,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>hasParent</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.340">hasParent</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.361">hasParent</a>()</pre>
 </li>
 </ul>
 <a name="getParentProcId--">
@@ -1226,7 +1278,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.344">getParentProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.365">getParentProcId</a>()</pre>
 </li>
 </ul>
 <a name="getRootProcId--">
@@ -1235,7 +1287,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>getRootProcId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.348">getRootProcId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.369">getRootProcId</a>()</pre>
 </li>
 </ul>
 <a name="getNonceKey--">
@@ -1244,16 +1296,16 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <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/procedure2/Procedure.html#line.352">getNonceKey</a>()</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/procedure2/Procedure.html#line.373">getNonceKey</a>()</pre>
 </li>
 </ul>
-<a name="getStartTime--">
+<a name="getSubmittedTime--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getStartTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.356">getStartTime</a>()</pre>
+<h4>getSubmittedTime</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.377">getSubmittedTime</a>()</pre>
 </li>
 </ul>
 <a name="getOwner--">
@@ -1262,7 +1314,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>getOwner</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.360">getOwner</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.381">getOwner</a>()</pre>
 </li>
 </ul>
 <a name="hasOwner--">
@@ -1271,7 +1323,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>hasOwner</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.364">hasOwner</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.385">hasOwner</a>()</pre>
 </li>
 </ul>
 <a name="setProcId-long-">
@@ -1281,7 +1333,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparabl
 <li class="blockList">
 <h4>setProcId</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.373">setProcId</a>(long&nbsp;procId)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.394">setProcId</a>(long&nbsp;procId)</pre>
 <div class="block">Called by the ProcedureExecutor to assign the ID to the newly created procedure.</div>
 </li>
 </ul>
@@ -1292,7 +1344,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>setParentProcId</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.383">setParentProcId</a>(long&nbsp;parentProcId)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.404">setParentProcId</a>(long&nbsp;parentProcId)</pre>
 <div class="block">Called by the ProcedureExecutor to assign the parent to the newly created procedure.</div>
 </li>
 </ul>
@@ -1303,7 +1355,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>setRootProcId</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.388">setRootProcId</a>(long&nbsp;rootProcId)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.409">setRootProcId</a>(long&nbsp;rootProcId)</pre>
 </li>
 </ul>
 <a name="setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">
@@ -1313,7 +1365,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>setNonceKey</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.397">setNonceKey</a>(<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.418">setNonceKey</a>(<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey)</pre>
 <div class="block">Called by the ProcedureExecutor to set the value to the newly created procedure.</div>
 </li>
 </ul>
@@ -1324,7 +1376,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>setOwner</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/procedure2/Procedure.html#line.403">setOwner</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;owner)</pre>
+public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.424">setOwner</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;owner)</pre>
 </li>
 </ul>
 <a name="setOwner-org.apache.hadoop.hbase.security.User-">
@@ -1333,17 +1385,17 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/p
 <ul class="blockList">
 <li class="blockList">
 <h4>setOwner</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.407">setOwner</a>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;owner)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.428">setOwner</a>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;owner)</pre>
 </li>
 </ul>
-<a name="setStartTime-long-">
+<a name="setSubmittedTime-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setStartTime</h4>
+<h4>setSubmittedTime</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.417">setStartTime</a>(long&nbsp;startTime)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.438">setSubmittedTime</a>(long&nbsp;submittedTime)</pre>
 <div class="block">Called on store load to initialize the Procedure internals after
  the creation/deserialization.</div>
 </li>
@@ -1354,7 +1406,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setTimeout</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.427">setTimeout</a>(int&nbsp;timeout)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.448">setTimeout</a>(int&nbsp;timeout)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>timeout</code> - timeout interval in msec</dd>
@@ -1367,7 +1419,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>hasTimeout</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.431">hasTimeout</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.452">hasTimeout</a>()</pre>
 </li>
 </ul>
 <a name="getTimeout--">
@@ -1376,7 +1428,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeout</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.438">getTimeout</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.459">getTimeout</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the timeout in msec</dd>
@@ -1390,7 +1442,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>setLastUpdate</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.447">setLastUpdate</a>(long&nbsp;lastUpdate)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.468">setLastUpdate</a>(long&nbsp;lastUpdate)</pre>
 <div class="block">Called on store load to initialize the Procedure internals after
  the creation/deserialization.</div>
 </li>
@@ -1402,7 +1454,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>updateTimestamp</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.455">updateTimestamp</a>()</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.476">updateTimestamp</a>()</pre>
 <div class="block">Called by ProcedureExecutor after each time a procedure step is executed.</div>
 </li>
 </ul>
@@ -1412,7 +1464,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastUpdate</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.459">getLastUpdate</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.480">getLastUpdate</a>()</pre>
 </li>
 </ul>
 <a name="getTimeoutTimestamp--">
@@ -1422,7 +1474,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>getTimeoutTimestamp</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.470">getTimeoutTimestamp</a>()</pre>
+protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.491">getTimeoutTimestamp</a>()</pre>
 <div class="block">Timeout of the next timeout.
  Called by the ProcedureExecutor if the procedure has timeout set and
  the procedure is in the waiting queue.</div>
@@ -1438,7 +1490,7 @@ protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>elapsedTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.480">elapsedTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.501">elapsedTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the time elapsed between the last update and the start time of the procedure.</dd>
@@ -1451,7 +1503,7 @@ protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getResult</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.487">getResult</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.508">getResult</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the serialized result if any, otherwise null</dd>
@@ -1464,7 +1516,7 @@ protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setResult</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.495">setResult</a>(byte[]&nbsp;result)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.516">setResult</a>(byte[]&nbsp;result)</pre>
 <div class="block">The procedure may leave a "result" on completion.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1478,7 +1530,7 @@ protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isRunnable</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.530">isRunnable</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.551">isRunnable</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if the procedure is in a RUNNABLE state.</dd>
@@ -1491,7 +1543,7 @@ protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isInitializing</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.534">isInitializing</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.555">isInitializing</a>()</pre>
 </li>
 </ul>
 <a name="isFailed--">
@@ -1500,7 +1552,7 @@ protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isFailed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.541">isFailed</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.562">isFailed</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if the procedure has failed. It may or may not have rolled back.</dd>
@@ -1513,7 +1565,7 @@ protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isSuccess</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.548">isSuccess</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.569">isSuccess</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if the procedure is finished successfully.</dd>
@@ -1526,7 +1578,7 @@ protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isFinished</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.556">isFinished</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.577">isFinished</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if the procedure is finished. The Procedure may be completed successfully or
@@ -1540,7 +1592,7 @@ protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isWaiting</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.563">isWaiting</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.584">isWaiting</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if the procedure is waiting for a child to finish or for an external event.</dd>
@@ -1554,7 +1606,7 @@ protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>setState</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.576">setState</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;state)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.597">setState</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;state)</pre>
 </li>
 </ul>
 <a name="getState--">
@@ -1564,7 +1616,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>getState</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.582">getState</a>()</pre>
+protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.603">getState</a>()</pre>
 </li>
 </ul>
 <a name="setFailure-java.lang.String-java.lang.Throwable-">
@@ -1573,7 +1625,7 @@ protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos
 <ul class="blockList">
 <li class="blockList">
 <h4>setFailure</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.586">setFailure</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.607">setFailure</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source,
                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
 </li>
 </ul>
@@ -1583,7 +1635,7 @@ protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos
 <ul class="blockList">
 <li class="blockList">
 <h4>setFailure</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.590">setFailure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a>&nbsp;exception)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.611">setFailure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a>&nbsp;exception)</pre>
 </li>
 </ul>
 <a name="setAbortFailure-java.lang.String-java.lang.String-">
@@ -1592,7 +1644,7 @@ protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos
 <ul class="blockList">
 <li class="blockList">
 <h4>setAbortFailure</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.597">setAbortFailure</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.618">setAbortFailure</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source,
                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
 </li>
 </ul>
@@ -1604,7 +1656,7 @@ protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos
 <ul class="blockList">
 <li class="blockList">
 <h4>setTimeoutFailure</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.606">setTimeoutFailure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.627">setTimeoutFailure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">Called by the ProcedureExecutor when the timeout set by setTimeout() is expired.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1619,7 +1671,7 @@ protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos
 <ul class="blockList">
 <li class="blockList">
 <h4>hasException</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.616">hasException</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.637">hasException</a>()</pre>
 </li>
 </ul>
 <a name="getException--">
@@ -1628,7 +1680,7 @@ protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos
 <ul class="blockList">
 <li class="blockList">
 <h4>getException</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.620">getException</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.641">getException</a>()</pre>
 </li>
 </ul>
 <a name="setChildrenLatch-int-">
@@ -1638,7 +1690,7 @@ protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos
 <li class="blockList">
 <h4>setChildrenLatch</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.628">setChildrenLatch</a>(int&nbsp;numChildren)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.649">setChildrenLatch</a>(int&nbsp;numChildren)</pre>
 <div class="block">Called by the ProcedureExecutor on procedure-load to restore the latch state</div>
 </li>
 </ul>
@@ -1649,7 +1701,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>incChildrenLatch</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.636">incChildrenLatch</a>()</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.657">incChildrenLatch</a>()</pre>
 <div class="block">Called by the ProcedureExecutor on procedure-load to restore the latch state</div>
 </li>
 </ul>
@@ -1660,7 +1712,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>childrenCountDown</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.645">childrenCountDown</a>()</pre>
+protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.666">childrenCountDown</a>()</pre>
 <div class="block">Called by the ProcedureExecutor to notify that one of the sub-procedures has completed.</div>
 </li>
 </ul>
@@ -1671,7 +1723,7 @@ protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/h
 <li class="blockList">
 <h4>hasChildren</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.651">hasChildren</a>()</pre>
+protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.672">hasChildren</a>()</pre>
 </li>
 </ul>
 <a name="getChildrenLatch--">
@@ -1681,7 +1733,7 @@ protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/h
 <li class="blockList">
 <h4>getChildrenLatch</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.656">getChildrenLatch</a>()</pre>
+protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.677">getChildrenLatch</a>()</pre>
 </li>
 </ul>
 <a name="addStackIndex-int-">
@@ -1691,7 +1743,7 @@ protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase
 <li class="blockList">
 <h4>addStackIndex</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.665">addStackIndex</a>(int&nbsp;index)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.686">addStackIndex</a>(int&nbsp;index)</pre>
 <div class="block">Called by the RootProcedureState on procedure execution.
  Each procedure store its stack-index positions.</div>
 </li>
@@ -1703,7 +1755,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>removeStackIndex</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.676">removeStackIndex</a>()</pre>
+protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.697">removeStackIndex</a>()</pre>
 </li>
 </ul>
 <a name="setStackIndexes-java.util.List-">
@@ -1713,7 +1765,7 @@ protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/h
 <li class="blockList">
 <h4>setStackIndexes</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.691">setStackIndexes</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;stackIndexes)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.712">setStackIndexes</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;stackIndexes)</pre>
 <div class="block">Called on store load to initialize the Procedure internals after
  the creation/deserialization.</div>
 </li>
@@ -1725,7 +1777,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>wasExecuted</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.699">wasExecuted</a>()</pre>
+protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.720">wasExecuted</a>()</pre>
 </li>
 </ul>
 <a name="getStackIndexes--">
@@ -1735,7 +1787,7 @@ protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/h
 <li class="blockList">
 <h4>getStackIndexes</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;int[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.704">getStackIndexes</a>()</pre>
+protected&nbsp;int[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.725">getStackIndexes</a>()</pre>
 </li>
 </ul>
 <a name="doExecute-java.lang.Object-">
@@ -1747,7 +1799,7 @@ protected&nbsp;int[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hba
 <li class="blockList">
 <h4>doExecute</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&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.716">doExecute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)
+protected&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.737">doExecute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)
                                                     throws <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureYieldException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureYieldException</a>,
                                                            <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureSuspendedException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureSuspendedException</a>,
                                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -1769,7 +1821,7 @@ protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Proced
 <li class="blockList">
 <h4>doRollback</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.730">doRollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.751">doRollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)
                                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code rollback().</div>
@@ -1789,7 +1841,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>doAcquireLock</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.744">doAcquireLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.765">doAcquireLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code acquireLock().</div>
 </li>
 </ul>
@@ -1802,7 +1854,7 @@ protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Proced
 <li class="blockList">
 <h4>doReleaseLock</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.752">doReleaseLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.773">doReleaseLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code releaseLock().</div>
 </li>
 </ul>
@@ -1812,7 +1864,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>compareTo</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.757">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;other)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.778">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;other)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true#compareTo-T-" title="class or interface in java.lang">compareTo</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;</code></dd>
@@ -1825,7 +1877,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcIdHashCode</h4>
-<pre>public static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.769">getProcIdHashCode</a>(long&nbsp;procId)</pre>
+<pre>public static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.790">getProcIdHashCode</a>(long&nbsp;procId)</pre>
 <div class="block">Get an hashcode for the specified Procedure ID</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1840,7 +1892,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>getRootProcedureId</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-protected static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.783">getRootProcedureId</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;&nbsp;procedures,
+protected static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.804">getRootProcedureId</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;&nbsp;procedures,
                                                                     <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;proc)</pre>
 </li>
 </ul>
@@ -1850,7 +1902,7 @@ protected static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lan
 <ul class="blockListLast">
 <li class="blockList">
 <h4>haveSameParent</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.796">haveSameParent</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;a,
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.817">haveSameParent</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;a,
                                      <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;b)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
index 5dc7421..8241095 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
@@ -286,7 +286,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureInMe
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a hr
 ef="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/proc
 edure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.
 apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/apache/ha
 doop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpda
 te-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>
 , <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">t
 oStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a hr
 ef="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/P
 rocedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSamePar
 ent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../org/a
 pache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#set
 LastUpdate-long-">setLastUpdate</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackInd
 exes</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.S
 tringBuilder-">toStringClassDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html
index 3230e8b..0fa196a 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html
@@ -126,7 +126,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1713">ProcedureExecutor.DelayedProcedure</a>
+<pre>private static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1724">ProcedureExecutor.DelayedProcedure</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/util/DelayedUtil.DelayedContainerWithTimestamp.html" title="class in org.apache.hadoop.hbase.procedure2.util">DelayedUtil.DelayedContainerWithTimestamp</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;</pre>
 </li>
 </ul>
@@ -205,7 +205,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/util/DelayedU
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DelayedProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html#line.1715">DelayedProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;procedure)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.DelayedProcedure.html#line.1726">DelayedProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;procedure)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html
index 2cf686b..efb2ee9 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html
@@ -126,7 +126,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1747">ProcedureExecutor.InlineChore</a>
+<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#line.1758">ProcedureExecutor.InlineChore</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/util/DelayedUtil.DelayedObject.html" title="class in org.apache.hadoop.hbase.procedure2.util">DelayedUtil.DelayedObject</a>
 implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
 </li>
@@ -239,7 +239,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>timeout</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#line.1748">timeout</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#line.1759">timeout</a></pre>
 </li>
 </ul>
 </li>
@@ -256,7 +256,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>InlineChore</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#line.1747">InlineChore</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#line.1758">InlineChore</a>()</pre>
 </li>
 </ul>
 </li>
@@ -273,7 +273,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeoutInterval</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#line.1750">getTimeoutInterval</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#line.1761">getTimeoutInterval</a>()</pre>
 </li>
 </ul>
 <a name="refreshTimeout--">
@@ -282,7 +282,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>refreshTimeout</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#line.1752">refreshTimeout</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#line.1763">refreshTimeout</a>()</pre>
 </li>
 </ul>
 <a name="getTimeout--">
@@ -291,7 +291,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getTimeout</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#line.1757">getTimeout</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html#line.1768">getTimeout</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/util/DelayedUtil.DelayedWithTimeout.html#getTimeout--">getTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/util/DelayedUtil.DelayedWithTimeout.html" title="interface in org.apache.hadoop.hbase.procedure2.util">DelayedUtil.DelayedWithTimeout</a></code></dd>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
index 0b4a142..8fa3486 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureUtil.html
@@ -105,7 +105,7 @@
 <span class="sourceLineNo">097</span>      .setClassName(proc.getClass().getName())<a name="line.97"></a>
 <span class="sourceLineNo">098</span>      .setProcId(proc.getProcId())<a name="line.98"></a>
 <span class="sourceLineNo">099</span>      .setState(proc.getState())<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      .setStartTime(proc.getStartTime())<a name="line.100"></a>
+<span class="sourceLineNo">100</span>      .setSubmittedTime(proc.getSubmittedTime())<a name="line.100"></a>
 <span class="sourceLineNo">101</span>      .setLastUpdate(proc.getLastUpdate());<a name="line.101"></a>
 <span class="sourceLineNo">102</span><a name="line.102"></a>
 <span class="sourceLineNo">103</span>    if (proc.hasParent()) {<a name="line.103"></a>
@@ -172,7 +172,7 @@
 <span class="sourceLineNo">164</span>    // set fields<a name="line.164"></a>
 <span class="sourceLineNo">165</span>    proc.setProcId(proto.getProcId());<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    proc.setState(proto.getState());<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    proc.setStartTime(proto.getStartTime());<a name="line.167"></a>
+<span class="sourceLineNo">167</span>    proc.setSubmittedTime(proto.getSubmittedTime());<a name="line.167"></a>
 <span class="sourceLineNo">168</span>    proc.setLastUpdate(proto.getLastUpdate());<a name="line.168"></a>
 <span class="sourceLineNo">169</span><a name="line.169"></a>
 <span class="sourceLineNo">170</span>    if (proto.hasParentId()) {<a name="line.170"></a>
@@ -225,7 +225,7 @@
 <span class="sourceLineNo">217</span><a name="line.217"></a>
 <span class="sourceLineNo">218</span>    builder.setClassName(procInfo.getProcName());<a name="line.218"></a>
 <span class="sourceLineNo">219</span>    builder.setProcId(procInfo.getProcId());<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    builder.setStartTime(procInfo.getStartTime());<a name="line.220"></a>
+<span class="sourceLineNo">220</span>    builder.setSubmittedTime(procInfo.getSubmittedTime());<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    builder.setState(ProcedureProtos.ProcedureState.valueOf(procInfo.getProcState().name()));<a name="line.221"></a>
 <span class="sourceLineNo">222</span>    builder.setLastUpdate(procInfo.getLastUpdate());<a name="line.222"></a>
 <span class="sourceLineNo">223</span><a name="line.223"></a>
@@ -265,7 +265,7 @@
 <span class="sourceLineNo">257</span>        procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,<a name="line.257"></a>
 <span class="sourceLineNo">258</span>        procProto.hasException() ?<a name="line.258"></a>
 <span class="sourceLineNo">259</span>          ForeignExceptionUtil.toIOException(procProto.getException()) : null,<a name="line.259"></a>
-<span class="sourceLineNo">260</span>        procProto.getLastUpdate(), procProto.getStartTime(),<a name="line.260"></a>
+<span class="sourceLineNo">260</span>        procProto.getLastUpdate(), procProto.getSubmittedTime(),<a name="line.260"></a>
 <span class="sourceLineNo">261</span>        procProto.hasResult() ? procProto.getResult().toByteArray() : null);<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>
@@ -287,7 +287,7 @@
 <span class="sourceLineNo">279</span>        convertToProcedureState(proc.getState()),<a name="line.279"></a>
 <span class="sourceLineNo">280</span>        proc.hasParent() ? proc.getParentProcId() : -1, nonceKey,<a name="line.280"></a>
 <span class="sourceLineNo">281</span>        exception != null ? exception.unwrapRemoteIOException() : null,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        proc.getLastUpdate(), proc.getStartTime(), proc.getResult());<a name="line.282"></a>
+<span class="sourceLineNo">282</span>        proc.getLastUpdate(), proc.getSubmittedTime(), proc.getResult());<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  }<a name="line.283"></a>
 <span class="sourceLineNo">284</span>}<a name="line.284"></a>
 

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

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html
index e7f72f1..b7e1070 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html
@@ -107,7 +107,7 @@
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.190">TestStateMachineProcedure.TestProcEnv</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.189">TestStateMachineProcedure.TestProcEnv</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -192,7 +192,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>execCount</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html#line.191">execCount</a></pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html#line.190">execCount</a></pre>
 </li>
 </ul>
 <a name="rollbackCount">
@@ -201,7 +201,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rollbackCount</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html#line.192">rollbackCount</a></pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html#line.191">rollbackCount</a></pre>
 </li>
 </ul>
 <a name="triggerChildRollback">
@@ -210,7 +210,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>triggerChildRollback</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html#line.193">triggerChildRollback</a></pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html#line.192">triggerChildRollback</a></pre>
 </li>
 </ul>
 </li>
@@ -227,7 +227,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestProcEnv</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html#line.190">TestProcEnv</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html#line.189">TestProcEnv</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html
index 98efc4d..a01eb83 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.139">TestStateMachineProcedure.TestSMProcedure</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.138">TestStateMachineProcedure.TestSMProcedure</a>
 extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&gt;</pre>
 </li>
 </ul>
@@ -236,7 +236,7 @@ extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, updateTimestamp, wasExecuted</co
 de></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, updateMetricsOnFinish, u
 pdateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -265,7 +265,7 @@ extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestSMProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.139">TestSMProcedure</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.138">TestSMProcedure</a>()</pre>
 </li>
 </ul>
 </li>
@@ -282,7 +282,7 @@ extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>executeFromState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.procedure2.StateMachineProcedure.Flow&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.141">executeFromState</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&nbsp;env,
+<pre>protected&nbsp;org.apache.hadoop.hbase.procedure2.StateMachineProcedure.Flow&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.140">executeFromState</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&nbsp;env,
                                                                                          <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&nbsp;state)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -296,7 +296,7 @@ extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>rollbackState</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.155">rollbackState</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&nbsp;env,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.154">rollbackState</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&nbsp;env,
                              <a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&nbsp;state)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -310,7 +310,7 @@ extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>getState</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.160">getState</a>(int&nbsp;stateId)</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.159">getState</a>(int&nbsp;stateId)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getState</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&gt;</code></dd>
@@ -323,7 +323,7 @@ extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../
 <ul class="blockList">
 <li class="blockList">
 <h4>getStateId</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.164">getStateId</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&nbsp;state)</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.163">getStateId</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&nbsp;state)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getStateId</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&gt;</code></dd>
@@ -336,7 +336,7 @@ extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getInitialState</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.168">getInitialState</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html#line.167">getInitialState</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getInitialState</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&gt;</code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html
index 0d965bf..8843ae7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.138">TestStateMachineProcedure.TestSMProcedureState</a>
+<pre>public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.137">TestStateMachineProcedure.TestSMProcedureState</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&gt;</pre>
 </li>
 </ul>
@@ -210,7 +210,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>STEP_1</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html#line.138">STEP_1</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html#line.137">STEP_1</a></pre>
 </li>
 </ul>
 <a name="STEP_2">
@@ -219,7 +219,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>STEP_2</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html#line.138">STEP_2</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html#line.137">STEP_2</a></pre>
 </li>
 </ul>
 </li>
@@ -236,7 +236,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/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html#line.138">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html#line.137">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:
@@ -256,7 +256,7 @@ for (TestStateMachineProcedure.TestSMProcedureState c : TestStateMachineProcedur
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html#line.138">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedureState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html#line.137">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html
index d749b8c..fe22ead 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.44">TestStateMachineProcedure</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.43">TestStateMachineProcedure</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -280,7 +280,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.45">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.44">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_FAILURE_EXCEPTION">
@@ -289,7 +289,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_FAILURE_EXCEPTION</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.47">TEST_FAILURE_EXCEPTION</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.46">TEST_FAILURE_EXCEPTION</a></pre>
 </li>
 </ul>
 <a name="PROCEDURE_EXECUTOR_SLOTS">
@@ -298,7 +298,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>PROCEDURE_EXECUTOR_SLOTS</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.63">PROCEDURE_EXECUTOR_SLOTS</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.62">PROCEDURE_EXECUTOR_SLOTS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.TestStateMachineProcedure.PROCEDURE_EXECUTOR_SLOTS">Constant Field Values</a></dd>
@@ -311,7 +311,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>procExecutor</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureExecutor&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.65">procExecutor</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.procedure2.ProcedureExecutor&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestProcEnv</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.64">procExecutor</a></pre>
 </li>
 </ul>
 <a name="procStore">
@@ -320,7 +320,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>procStore</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.procedure2.store.ProcedureStore <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.66">procStore</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.procedure2.store.ProcedureStore <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.65">procStore</a></pre>
 </li>
 </ul>
 <a name="htu">
@@ -329,7 +329,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>htu</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseCommonTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseCommonTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.68">htu</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseCommonTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseCommonTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.67">htu</a></pre>
 </li>
 </ul>
 <a name="fs">
@@ -338,7 +338,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>fs</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.69">fs</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.68">fs</a></pre>
 </li>
 </ul>
 <a name="testDir">
@@ -347,7 +347,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testDir</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.70">testDir</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.69">testDir</a></pre>
 </li>
 </ul>
 <a name="logDir">
@@ -356,7 +356,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>logDir</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.71">logDir</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.70">logDir</a></pre>
 </li>
 </ul>
 </li>
@@ -373,7 +373,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestStateMachineProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.44">TestStateMachineProcedure</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.43">TestStateMachineProcedure</a>()</pre>
 </li>
 </ul>
 </li>
@@ -390,7 +390,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.74">setUp</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.73">setUp</a>()
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -404,7 +404,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.87">tearDown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.86">tearDown</a>()
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -418,7 +418,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testChildOnLastStep</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.97">testChildOnLastStep</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.96">testChildOnLastStep</a>()</pre>
 </li>
 </ul>
 <a name="testChildOnLastStepDoubleExecution--">
@@ -427,7 +427,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testChildOnLastStepDoubleExecution</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.106">testChildOnLastStepDoubleExecution</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.105">testChildOnLastStepDoubleExecution</a>()
                                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -441,7 +441,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testChildOnLastStepWithRollback</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.116">testChildOnLastStepWithRollback</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.115">testChildOnLastStepWithRollback</a>()</pre>
 </li>
 </ul>
 <a name="testChildOnLastStepWithRollbackDoubleExecution--">
@@ -450,7 +450,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testChildOnLastStepWithRollbackDoubleExecution</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.127">testChildOnLastStepWithRollbackDoubleExecution</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html#line.126">testChildOnLastStepWithRollbackDoubleExecution</a>()
                                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.html
index 008e4d2..959318c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.html
@@ -291,7 +291,7 @@ extends org.apache.hadoop.hbase.procedure2.StateMachineProcedure&lt;<a href="../
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, updateTimestamp, wasExecuted</co
 de></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, updateMetricsOnFinish, u
 pdateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestYieldProcedure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestYieldProcedure.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestYieldProcedure.html
index 2091931..a174f8a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestYieldProcedure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestYieldProcedure.html
@@ -230,7 +230,7 @@ extends org.apache.hadoop.hbase.procedure2.Procedure&lt;<a href="../../../../../
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.Procedure</h3>
-<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getStartTime, getState, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setStartTime, setState, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateTimestamp, 
 wasExecuted</code></li>
+<code>acquireLock, addStackIndex, afterReplay, beforeReplay, childrenCountDown, compareTo, completionCleanup, doAcquireLock, doExecute, doReleaseLock, doRollback, elapsedTime, getChildrenLatch, getException, getLastUpdate, getNonceKey, getOwner, getParentProcId, getProcId, getProcIdHashCode, getResult, getRootProcedureId, getRootProcId, getStackIndexes, getState, getSubmittedTime, getTimeout, getTimeoutTimestamp, hasChildren, hasException, hasLock, hasOwner, hasParent, hasTimeout, haveSameParent, holdLock, incChildrenLatch, isFailed, isFinished, isInitializing, isRunnable, isSuccess, isWaiting, releaseLock, removeStackIndex, setAbortFailure, setChildrenLatch, setFailure, setFailure, setLastUpdate, setNonceKey, setOwner, setOwner, setParentProcId, setProcId, setResult, setRootProcId, setStackIndexes, setState, setSubmittedTime, setTimeout, setTimeoutFailure, shouldWaitClientAck, toString, toStringClass, toStringClassDetails, toStringDetails, toStringSimpleSB, toStringState, updateMet
 ricsOnFinish, updateMetricsOnSubmit, updateTimestamp, wasExecuted</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.ProcedureMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.ProcedureMetrics.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.ProcedureMetrics.html
new file mode 100644
index 0000000..d5fb4f7
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.ProcedureMetrics.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics (Apache HBase 2.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.ProcedureMetrics.html" target="_top">Frames</a></li>
+<li><a href="TestProcedureMetrics.ProcedureMetrics.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics" class="title">Uses of Class<br>org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.procedure2">org.apache.hadoop.hbase.procedure2</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.procedure2">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a> in <a href="../../../../../../org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureMetrics.ProcedureMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#subprocs">subprocs</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-boolean-int-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics:A-">ProcedureMetrics</a></span>(boolean&nbsp;success,
+                boolean&nbsp;yield,
+                int&nbsp;yieldCount,
+                <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a>[]&nbsp;subprocs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#ProcedureMetrics-boolean-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.ProcedureMetrics:A-">ProcedureMetrics</a></span>(boolean&nbsp;success,
+                <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a>[]&nbsp;subprocs)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.ProcedureMetrics.html" target="_top">Frames</a></li>
+<li><a href="TestProcedureMetrics.ProcedureMetrics.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.TestProcEnv.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.TestProcEnv.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.TestProcEnv.html
new file mode 100644
index 0000000..64bbd7a
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.TestProcEnv.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv (Apache HBase 2.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.TestProcEnv.html" target="_top">Frames</a></li>
+<li><a href="TestProcedureMetrics.TestProcEnv.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv" class="title">Uses of Class<br>org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.procedure2">org.apache.hadoop.hbase.procedure2</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.procedure2">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a> in <a href="../../../../../../org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#procEnv">procEnv</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a> with type parameters of type <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private static org.apache.hadoop.hbase.procedure2.ProcedureExecutor&lt;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html#procExecutor">procExecutor</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</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>protected boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureMetrics.ProcedureMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#abort-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">abort</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected org.apache.hadoop.hbase.procedure2.Procedure[]</code></td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureMetrics.ProcedureMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#execute-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">execute</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureMetrics.ProcedureMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#rollback-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">rollback</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureMetrics.ProcedureMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#updateMetricsOnFinish-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-long-boolean-">updateMetricsOnFinish</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env,
+                     long&nbsp;time,
+                     boolean&nbsp;success)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureMetrics.ProcedureMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html#updateMetricsOnSubmit-org.apache.hadoop.hbase.procedure2.TestProcedureMetrics.TestProcEnv-">updateMetricsOnSubmit</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a>&nbsp;env)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/procedure2/class-use/TestProcedureMetrics.TestProcEnv.html" target="_top">Frames</a></li>
+<li><a href="TestProcedureMetrics.TestProcEnv.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-frame.html
index 547f535..416e839 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-frame.html
@@ -33,6 +33,9 @@
 <li><a href="TestProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureInMemoryChore</a></li>
 <li><a href="TestProcedureInMemoryChore.TestLatchChore.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureInMemoryChore.TestLatchChore</a></li>
 <li><a href="TestProcedureInMemoryChore.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureInMemoryChore.TestProcEnv</a></li>
+<li><a href="TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureMetrics</a></li>
+<li><a href="TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureMetrics.ProcedureMetrics</a></li>
+<li><a href="TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureMetrics.TestProcEnv</a></li>
 <li><a href="TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureNonce</a></li>
 <li><a href="TestProcedureNonce.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureNonce.TestProcEnv</a></li>
 <li><a href="TestProcedureNonce.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TestProcedureNonce.TestSingleStepProcedure</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-summary.html
index 708e756..13bbc3b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-summary.html
@@ -163,154 +163,166 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestProcEnv</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.ProcedureMetrics.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.ProcedureMetrics</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestSingleStepProcedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureMetrics.TestProcEnv</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.BaseTestStepProcedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestProcEnv</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestMultiStepProcedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureNonce.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureNonce.TestSingleStepProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step1Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestMultiStepProcedure.Step1Procedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step2Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestMultiStepProcedure.Step2Procedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.BaseTestStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.BaseTestStepProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestProcEnv</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestMultiStepProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestSingleStepProcedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step1Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestMultiStepProcedure.Step1Procedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestStateMachineProcedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestMultiStepProcedure.Step2Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestMultiStepProcedure.Step2Procedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestProcEnv</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder.TestProcedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestSingleStepProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestProcedureEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder.TestProcedureEnv</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureRecovery.TestStateMachineProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder.TestSingleStepProcedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestTwoStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder.TestTwoStepProcedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder.TestProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureSchedulerConcurrency</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestProcedureEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder.TestProcedureEnv</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.TestProcedureWithEvent.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureSchedulerConcurrency.TestProcedureWithEvent</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestSingleStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder.TestSingleStepProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureSuspended</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.TestTwoStepProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureReplayOrder.TestTwoStepProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.TestLockProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureSuspended.TestLockProcedure</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureSchedulerConcurrency</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureSuspended.TestProcEnv</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.TestProcedureWithEvent.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureSchedulerConcurrency.TestProcedureWithEvent</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureToString.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureToString</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureSuspended</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.TestLockProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureSuspended.TestLockProcedure</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureSuspended.TestProcEnv</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureToString.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureToString</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureToString.BasicProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureToString.BasicProcedure</a></td>
 <td class="colLast">
 <div class="block">A do-nothing basic procedure just for testing toString.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureToString.BasicProcedureEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureToString.BasicProcedureEnv</a></td>
 <td class="colLast">
 <div class="block">A do-nothing environment for BasicProcedure.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureToString.DoublingStateStringBasicProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureToString.DoublingStateStringBasicProcedure</a></td>
 <td class="colLast">
 <div class="block">A do-nothing basic procedure that overrides the toStringState method.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureToString.SimpleStateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureToString.SimpleStateMachineProcedure</a></td>
 <td class="colLast">
 <div class="block">Do-nothing SimpleMachineProcedure for checking its toString.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureUtil.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureUtil</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureUtil.TestProcedureNoDefaultConstructor.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureUtil.TestProcedureNoDefaultConstructor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.SimpleChildProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.SimpleChildProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestStateMachineProcedure.TestSMProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.html" title="class in org.apache.hadoop.hbase.procedure2">TestYieldProcedures</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestYieldProcedures.TestProcEnv</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">TestYieldProcedures.TestScheduler</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestYieldProcedures.TestStateMachineProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestYieldProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TestYieldProcedures.TestYieldProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 9eb8dd4..b075b92 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -26,7 +26,7 @@ under the License.
     <copyright>&#169;2007 - 2017 The Apache Software Foundation</copyright>
     <item>
       <title>File: 2144,
-             Errors: 14240,
+             Errors: 14242,
              Warnings: 0,
              Infos: 0
       </title>
@@ -15315,7 +15315,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  5
                 </td>
               </tr>
                           <tr>
@@ -25675,7 +25675,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index 46feb92..f00de58 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="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <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" />
@@ -691,7 +691,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 54e63a4..043c685 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="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <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" />
@@ -536,7 +536,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index dbcc51a..59d1323 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="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <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" />
@@ -1883,7 +1883,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index b0a4ce6..fa27968 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="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <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" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index fc90134..122827b 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="20170413" />
+    <meta name="Date-Revision-yyyymmdd" content="20170415" />
     <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" />
@@ -918,7 +918,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-04-13</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-04-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 52cf5d9..1253339 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3775,21 +3775,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Thu Apr 13 21:10:54 UTC 2017"</code></td>
+<td class="colLast"><code>"Sat Apr 15 14:38:43 UTC 2017"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"da5fb27eabed4a4b4d251be973ee945fb52895bf"</code></td>
+<td class="colLast"><code>"0cd4cec5d24b5e7194a903e4d900f5558ed8b9a7"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"00e895b43b730ab6c310b237457e4b31"</code></td>
+<td class="colLast"><code>"10edd451996c9718f54bf7c0638a70c1"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -12411,7 +12411,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#METRICS_DESCRIPTION">METRICS_DESCRIPTION</a></code></td>
-<td class="colLast"><code>"Metrics about HBase master assingment manager."</code></td>
+<td class="colLast"><code>"Metrics about HBase master assignment manager."</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.METRICS_JMX_CONTEXT">
@@ -12428,12 +12428,26 @@
 <td class="colLast"><code>"AssignmentManager"</code></td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_COUNT_DESC">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_DESC">RIT_COUNT_DESC</a></code></td>
+<td class="colLast"><code>"Current number of Regions In Transition (Gauge)."</code></td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_COUNT_NAME">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_NAME">RIT_COUNT_NAME</a></code></td>
 <td class="colLast"><code>"ritCount"</code></td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_COUNT_OVER_THRESHOLD_DESC">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_OVER_THRESHOLD_DESC">RIT_COUNT_OVER_THRESHOLD_DESC</a></code></td>
+<td class="colLast"><code>"Current number of Regions In Transition over threshold time (Gauge)."</code></td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_COUNT_OVER_THRESHOLD_NAME">
 <!--   -->
@@ -12442,12 +12456,26 @@
 <td class="colLast"><code>"ritCountOverThreshold"</code></td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_DURATION_DESC">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_DURATION_DESC">RIT_DURATION_DESC</a></code></td>
+<td class="colLast"><code>"Total durations in milliseconds for all Regions in Transition (Histogram)."</code></td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_DURATION_NAME">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_DURATION_NAME">RIT_DURATION_NAME</a></code></td>
 <td class="colLast"><code>"ritDuration"</code></td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_OLDEST_AGE_DESC">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_OLDEST_AGE_DESC">RIT_OLDEST_AGE_DESC</a></code></td>
+<td class="colLast"><code>"Timestamp in milliseconds of the oldest Region In Transition (Gauge)."</code></td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_OLDEST_AGE_NAME">
 <!--   -->

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 586ee59..b8973bc 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -44893,10 +44893,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.html#getStartTime--">getStartTime()</a></span> - Method in class org.apache.hadoop.hbase.monitoring.<a href="org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.html" title="class in org.apache.hadoop.hbase.monitoring">MonitoredTaskImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#getStartTime--">getStartTime()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ProcedureInfo.html#getStartTime--">getStartTime()</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="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/ScannerModel.html#getStartTime--">getStartTime()</a></span> - Method in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/ScannerModel.html" title="class in org.apache.hadoop.hbase.rest.model">ScannerModel</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/RowSpec.html#getStartTime--">getStartTime()</a></span> - Method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/RowSpec.html" title="class in org.apache.hadoop.hbase.rest">RowSpec</a></dt>
@@ -45436,6 +45432,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncProcessTask.html#getSubmittedRows--">getSubmittedRows()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncProcessTask.html" title="class in org.apache.hadoop.hbase.client">AsyncProcessTask</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ProcedureInfo.html#getSubmittedTime--">getSubmittedTime()</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="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/RootProcedureState.html#getSubprocedureIds--">getSubprocedureIds()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/RootProcedureState.html#getSubproceduresStack--">getSubproceduresStack()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/RootProcedureState.html" title="class in org.apache.hadoop.hbase.procedure2">RootProcedureState</a></dt>
@@ -86394,12 +86394,20 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a> - Enum in <a href="org/apache/hadoop/hbase/regionserver/wal/package-summary.html">org.apache.hadoop.hbase.regionserver.wal</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_DESC">RIT_COUNT_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_NAME">RIT_COUNT_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_OVER_THRESHOLD_DESC">RIT_COUNT_OVER_THRESHOLD_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_OVER_THRESHOLD_NAME">RIT_COUNT_OVER_THRESHOLD_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_DURATION_DESC">RIT_DURATION_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_DURATION_NAME">RIT_DURATION_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_OLDEST_AGE_DESC">RIT_OLDEST_AGE_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_OLDEST_AGE_NAME">RIT_OLDEST_AGE_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html#ritCountOverThresholdGauge">ritCountOverThresholdGauge</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSourceImpl</a></dt>
@@ -93974,11 +93982,6 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcServer.Call.html#setStartTime-long-">setStartTime(long)</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime(long)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
-<dd>
-<div class="block">Called on store load to initialize the Procedure internals after
- the creation/deserialization.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/ScannerModel.html#setStartTime-long-">setStartTime(long)</a></span> - Method in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/ScannerModel.html" title="class in org.apache.hadoop.hbase.rest.model">ScannerModel</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/RowSpec.html#setStartTime-long-">setStartTime(long)</a></span> - Method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/RowSpec.html" title="class in org.apache.hadoop.hbase.rest">RowSpec</a></dt>
@@ -94066,6 +94069,11 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncProcessTask.Builder.html#setSubmittedRows-org.apache.hadoop.hbase.client.AsyncProcessTask.SubmittedRows-">setSubmittedRows(AsyncProcessTask.SubmittedRows)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncProcessTask.Builder.html" title="class in org.apache.hadoop.hbase.client">AsyncProcessTask.Builder</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime(long)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
+<dd>
+<div class="block">Called on store load to initialize the Procedure internals after
+ the creation/deserialization.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupCopyJob.html#setSubTaskPercntgInWholeTask-float-">setSubTaskPercntgInWholeTask(float)</a></span> - Method in class org.apache.hadoop.hbase.backup.mapreduce.<a href="org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupCopyJob.html" title="class in org.apache.hadoop.hbase.backup.mapreduce">MapReduceBackupCopyJob</a></dt>
 <dd>
 <div class="block">Set the current copy task percentage within the whole task if multiple copies are needed.</div>
@@ -98276,10 +98284,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.html#startTime">startTime</a></span> - Variable in class org.apache.hadoop.hbase.monitoring.<a href="org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.html" title="class in org.apache.hadoop.hbase.monitoring">MonitoredTaskImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#startTime">startTime</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ProcedureInfo.html#startTime">startTime</a></span> - Variable 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="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/BusyRegionSplitPolicy.html#startTime">startTime</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/BusyRegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">BusyRegionSplitPolicy</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#startTime">startTime</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a></dt>
@@ -99903,6 +99907,10 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SimpleRequestController.SubmittedSizeChecker.html#SubmittedSizeChecker-long-">SubmittedSizeChecker(long)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SimpleRequestController.SubmittedSizeChecker.html" title="class in org.apache.hadoop.hbase.client">SimpleRequestController.SubmittedSizeChecker</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#submittedTime">submittedTime</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ProcedureInfo.html#submittedTime">submittedTime</a></span> - Variable 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><a href="org/apache/hadoop/hbase/procedure/Subprocedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">Subprocedure</span></a> - Class in <a href="org/apache/hadoop/hbase/procedure/package-summary.html">org.apache.hadoop.hbase.procedure</a></dt>
 <dd>
 <div class="block">Distributed procedure member's Subprocedure.</div>
@@ -106245,6 +106253,14 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/JvmPauseMonitor.html#updateMetrics-long-boolean-">updateMetrics(long, boolean)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/JvmPauseMonitor.html" title="class in org.apache.hadoop.hbase.util">JvmPauseMonitor</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish(TEnvironment, long, boolean)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
+<dd>
+<div class="block">This function will be called just after procedure execution is finished.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit(TEnvironment)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
+<dd>
+<div class="block">This function will be called just when procedure is submitted for execution.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancer.html#updateMetricsSize-int-">updateMetricsSize(int)</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsStochasticBalancer</a></dt>
 <dd>
 <div class="block">Updates the number of metrics reported to JMX</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 2d5b443..7f57583 100644
--- a/devapidocs/org/apache/hadoop/hbase/ProcedureInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/ProcedureInfo.html
@@ -178,7 +178,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#startTime">startTime</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#submittedTime">submittedTime</a></span></code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -203,7 +203,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable
              <a href="../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;exception,
              long&nbsp;lastUpdate,
-             long&nbsp;startTime,
+             long&nbsp;submittedTime,
              byte[]&nbsp;result)</code>&nbsp;</td>
 </tr>
 </table>
@@ -275,7 +275,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable
 </tr>
 <tr id="i13" class="rowColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#getStartTime--">getStartTime</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ProcedureInfo.html#getSubmittedTime--">getSubmittedTime</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i14" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
@@ -406,13 +406,13 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable
 <pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.41">lastUpdate</a></pre>
 </li>
 </ul>
-<a name="startTime">
+<a name="submittedTime">
 <!--   -->
 </a>
 <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.42">startTime</a></pre>
+<h4>submittedTime</h4>
+<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.42">submittedTime</a></pre>
 </li>
 </ul>
 <a name="result">
@@ -456,7 +456,7 @@ public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.
                                                 <a href="../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;exception,
                                                 long&nbsp;lastUpdate,
-                                                long&nbsp;startTime,
+                                                long&nbsp;submittedTime,
                                                 byte[]&nbsp;result)</pre>
 </li>
 </ul>
@@ -611,13 +611,13 @@ public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.
 <pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.167">getResult</a>()</pre>
 </li>
 </ul>
-<a name="getStartTime--">
+<a name="getSubmittedTime--">
 <!--   -->
 </a>
 <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.171">getStartTime</a>()</pre>
+<h4>getSubmittedTime</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ProcedureInfo.html#line.171">getSubmittedTime</a>()</pre>
 </li>
 </ul>
 <a name="getLastUpdate--">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index c120ac5..1715dc4 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -166,9 +166,9 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/class-use/ProcedureState.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ProcedureState.html b/devapidocs/org/apache/hadoop/hbase/class-use/ProcedureState.html
index 800615d..6582b19 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ProcedureState.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ProcedureState.html
@@ -153,7 +153,7 @@ the order they are declared.</div>
              <a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;exception,
              long&nbsp;lastUpdate,
-             long&nbsp;startTime,
+             long&nbsp;submittedTime,
              byte[]&nbsp;result)</code>&nbsp;</td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceAudience.Private.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceAudience.Private.html b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceAudience.Private.html
index 52fe352..e686fbc 100644
--- a/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceAudience.Private.html
+++ b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceAudience.Private.html
@@ -1141,7 +1141,7 @@ service.</div>
              <a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;exception,
              long&nbsp;lastUpdate,
-             long&nbsp;startTime,
+             long&nbsp;submittedTime,
              byte[]&nbsp;result)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -5782,14 +5782,14 @@ service.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">Procedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStartTime-long-">setStartTime</a></span>(long&nbsp;startTime)</code>
-<div class="block">Called on store load to initialize the Procedure internals after
- the creation/deserialization.</div>
-</td>
+<td class="colLast"><span class="typeNameLabel">Procedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;state)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">Procedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState&nbsp;state)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">Procedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a></span>(long&nbsp;submittedTime)</code>
+<div class="block">Called on store load to initialize the Procedure internals after
+ the creation/deserialization.</div>
+</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/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 e18ae0b..1fdf6c8 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -514,25 +514,25 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">HBaseAdmin.ReplicationState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">HBaseAdmin.ReplicationState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
 </ul>
 </li>
 </ul>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 8ce0bfa..07cb975 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -326,9 +326,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html b/devapidocs/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html
index 59ec96a..1ce1c92 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html
@@ -163,16 +163,32 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_DESC">RIT_COUNT_DESC</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_NAME">RIT_COUNT_NAME</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_OVER_THRESHOLD_DESC">RIT_COUNT_OVER_THRESHOLD_DESC</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_COUNT_OVER_THRESHOLD_NAME">RIT_COUNT_OVER_THRESHOLD_NAME</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_DURATION_DESC">RIT_DURATION_DESC</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_DURATION_NAME">RIT_DURATION_NAME</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_OLDEST_AGE_DESC">RIT_OLDEST_AGE_DESC</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#RIT_OLDEST_AGE_NAME">RIT_OLDEST_AGE_NAME</a></span></code>&nbsp;</td>
@@ -375,7 +391,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 <a name="BULK_ASSIGN_TIME_NAME">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>BULK_ASSIGN_TIME_NAME</h4>
 <pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.50">BULK_ASSIGN_TIME_NAME</a></pre>
@@ -385,6 +401,58 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 </dl>
 </li>
 </ul>
+<a name="RIT_COUNT_DESC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RIT_COUNT_DESC</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.52">RIT_COUNT_DESC</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_COUNT_DESC">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="RIT_COUNT_OVER_THRESHOLD_DESC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RIT_COUNT_OVER_THRESHOLD_DESC</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.53">RIT_COUNT_OVER_THRESHOLD_DESC</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_COUNT_OVER_THRESHOLD_DESC">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="RIT_OLDEST_AGE_DESC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RIT_OLDEST_AGE_DESC</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.55">RIT_OLDEST_AGE_DESC</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_OLDEST_AGE_DESC">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="RIT_DURATION_DESC">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RIT_DURATION_DESC</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.56">RIT_DURATION_DESC</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource.RIT_DURATION_DESC">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ============ METHOD DETAIL ========== -->
@@ -399,7 +467,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>updateAssignmentTime</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.52">updateAssignmentTime</a>(long&nbsp;time)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.59">updateAssignmentTime</a>(long&nbsp;time)</pre>
 </li>
 </ul>
 <a name="updateBulkAssignTime-long-">
@@ -408,7 +476,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>updateBulkAssignTime</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.54">updateBulkAssignTime</a>(long&nbsp;time)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.61">updateBulkAssignTime</a>(long&nbsp;time)</pre>
 </li>
 </ul>
 <a name="setRIT-int-">
@@ -417,7 +485,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>setRIT</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.61">setRIT</a>(int&nbsp;ritCount)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.68">setRIT</a>(int&nbsp;ritCount)</pre>
 <div class="block">Set the number of regions in transition.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -431,7 +499,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>setRITCountOverThreshold</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.68">setRITCountOverThreshold</a>(int&nbsp;ritCountOverThreshold)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.75">setRITCountOverThreshold</a>(int&nbsp;ritCountOverThreshold)</pre>
 <div class="block">Set the count of the number of regions that have been in transition over the threshold time.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -445,7 +513,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>setRITOldestAge</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.75">setRITOldestAge</a>(long&nbsp;age)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.82">setRITOldestAge</a>(long&nbsp;age)</pre>
 <div class="block">Set the oldest region in transition.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -459,7 +527,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updateRitDuration</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.77">updateRitDuration</a>(long&nbsp;duration)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#line.84">updateRitDuration</a>(long&nbsp;duration)</pre>
 </li>
 </ul>
 </li>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a949969b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html
index a1495ff..0c11099 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.InlineChore.html
@@ -839,1019 +839,1030 @@
 <span class="sourceLineNo">831</span>  private long pushProcedure(final Procedure proc) {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>    final long currentProcId = proc.getProcId();<a name="line.832"></a>
 <span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the rollback stack for the procedure<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    RootProcedureState stack = new RootProcedureState();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    rollbackStack.put(currentProcId, stack);<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>    // Submit the new subprocedures<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    assert !procedures.containsKey(currentProcId);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    procedures.put(currentProcId, proc);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    sendProcedureAddedNotification(currentProcId);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    scheduler.addBack(proc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    return proc.getProcId();<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Send an abort notification the specified procedure.<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * @param procId the procedure to abort<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  public boolean abort(final long procId) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    return abort(procId, true);<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>   * Send an abort notification the specified procedure.<a name="line.857"></a>
-<span class="sourceLineNo">858</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>   * @param procId the procedure to abort<a name="line.859"></a>
-<span class="sourceLineNo">860</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    final Procedure proc = procedures.get(procId);<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (proc != null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        return false;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return proc.abort(getEnvironment());<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    return false;<a name="line.871"></a>
-<span class="sourceLineNo">872</span>  }<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>  //  Executor query helpers<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  // ==========================================================================<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  public Procedure getProcedure(final long procId) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    return procedures.get(procId);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  }<a name="line.879"></a>
-<span class="sourceLineNo">880</span><a name="line.880"></a>
-<span class="sourceLineNo">881</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    final Procedure proc = getProcedure(procId);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (clazz.isInstance(proc)) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      return (T)proc;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    return null;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  public ProcedureInfo getResult(final long procId) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    return completed.get(procId);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>  }<a name="line.891"></a>
-<span class="sourceLineNo">892</span><a name="line.892"></a>
-<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * Return true if the procedure is finished.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * Use getResult() to check the state or get the result data.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @param procId the ID of the procedure to check<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  public boolean isFinished(final long procId) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    return !procedures.containsKey(procId);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>  }<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * Return true if the procedure is started.<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   * @param procId the ID of the procedure to check<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   */<a name="line.908"></a>
-<span class="sourceLineNo">909</span>  public boolean isStarted(final long procId) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>    final Procedure proc = procedures.get(procId);<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (proc == null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      return completed.get(procId) != null;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return proc.wasExecuted();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param procId the ID of the procedure to remove<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   */<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  public void removeResult(final long procId) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>    final ProcedureInfo result = completed.get(procId);<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    if (result == null) {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      if (LOG.isDebugEnabled()) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      }<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      return;<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>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>  }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    ProcedureInfo result = completed.get(procId);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    Procedure proc = null;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    if (result == null) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      proc = procedures.get(procId);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      if (proc == null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        result = completed.get(procId);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    return new Pair(result, proc);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Check if the user is this procedure's owner<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   * @param procId the target procedure<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param user the user<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   * @return true if the user is the owner of the procedure,<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   *   false otherwise or the owner is unknown.<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   */<a name="line.953"></a>
-<span class="sourceLineNo">954</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    if (user == null) return false;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    final Procedure proc = procedures.get(procId);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    if (proc != null) {<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      return proc.getOwner().equals(user.getShortName());<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>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    if (procInfo == null) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>      // At this time, we cannot check the owner of the procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return false;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  }<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>   * List procedures.<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   * @return the procedures in a list<a name="line.973"></a>
-<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      // it could complete after we walk through procedures list and insert into<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.983"></a>
-<span class="sourceLineNo">984</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      procedureLists.add(e.getValue());<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    }<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return procedureLists;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  // ==========================================================================<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  //  Listeners helpers<a name="line.991"></a>
-<span class="sourceLineNo">992</span>  // ==========================================================================<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    this.listeners.add(listener);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  }<a name="line.995"></a>
-<span class="sourceLineNo">996</span><a name="line.996"></a>
-<span class="sourceLineNo">997</span>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    return this.listeners.remove(listener);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>  }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    if (!this.listeners.isEmpty()) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>          listener.procedureLoaded(procId);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>        } catch (Throwable e) {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<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>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    if (!this.listeners.isEmpty()) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>          listener.procedureAdded(procId);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>        } catch (Throwable e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        }<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>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    if (!this.listeners.isEmpty()) {<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>        try {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          listener.procedureFinished(procId);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>        } catch (Throwable e) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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><a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  // ==========================================================================<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  //  Procedure IDs helpers<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  // ==========================================================================<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  private long nextProcId() {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    long procId = lastProcId.incrementAndGet();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    if (procId &lt; 0) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>        procId = lastProcId.get();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>        if (procId &gt;= 0)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>          break;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      while (procedures.containsKey(procId)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        procId = lastProcId.incrementAndGet();<a name="line.1049"></a>
+<span class="sourceLineNo">834</span>    // Update metrics on start of a procedure<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    proc.updateMetricsOnSubmit(getEnvironment());<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>    // Create the rollback stack for the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    RootProcedureState stack = new RootProcedureState();<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    rollbackStack.put(currentProcId, stack);<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>    // Submit the new subprocedures<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    assert !procedures.containsKey(currentProcId);<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    procedures.put(currentProcId, proc);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    sendProcedureAddedNotification(currentProcId);<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    scheduler.addBack(proc);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    return proc.getProcId();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Send an abort notification the specified procedure.<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @param procId the procedure to abort<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public boolean abort(final long procId) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    return abort(procId, true);<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>  /**<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   * Send an abort notification the specified procedure.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>   * Depending on the procedure implementation the abort can be considered or ignored.<a name="line.861"></a>
+<span class="sourceLineNo">862</span>   * @param procId the procedure to abort<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @return true if the procedure exist and has received the abort, otherwise false.<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>  public boolean abort(final long procId, final boolean mayInterruptIfRunning) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    final Procedure proc = procedures.get(procId);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    if (proc != null) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      if (!mayInterruptIfRunning &amp;&amp; proc.wasExecuted()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return false;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>      return proc.abort(getEnvironment());<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    return false;<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>  //  Executor query helpers<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  // ==========================================================================<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  public Procedure getProcedure(final long procId) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    return procedures.get(procId);<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  }<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>  public &lt;T extends Procedure&gt; T getProcedure(final Class&lt;T&gt; clazz, final long procId) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    final Procedure proc = getProcedure(procId);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (clazz.isInstance(proc)) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      return (T)proc;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    return null;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>  }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>  public ProcedureInfo getResult(final long procId) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    return completed.get(procId);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>  }<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>   * Return true if the procedure is finished.<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * The state may be "completed successfully" or "failed and rolledback".<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   * Use getResult() to check the state or get the result data.<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @param procId the ID of the procedure to check<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   * @return true if the procedure execution is finished, otherwise false.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>   */<a name="line.902"></a>
+<span class="sourceLineNo">903</span>  public boolean isFinished(final long procId) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    return !procedures.containsKey(procId);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * Return true if the procedure is started.<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * @param procId the ID of the procedure to check<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return true if the procedure execution is started, otherwise false.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  public boolean isStarted(final long procId) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>    final Procedure proc = procedures.get(procId);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    if (proc == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      return completed.get(procId) != null;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return proc.wasExecuted();<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>   * Mark the specified completed procedure, as ready to remove.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param procId the ID of the procedure to remove<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  public void removeResult(final long procId) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>    final ProcedureInfo result = completed.get(procId);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>    if (result == null) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      assert !procedures.containsKey(procId) : "procId=" + procId + " is still running";<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      if (LOG.isDebugEnabled()) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        LOG.debug("procId=" + procId + " already removed by the cleaner.");<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      return;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // The CompletedProcedureCleaner will take care of deletion, once the TTL is expired.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    result.setClientAckTime(EnvironmentEdgeManager.currentTime());<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>  public Pair&lt;ProcedureInfo, Procedure&gt; getResultOrProcedure(final long procId) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    ProcedureInfo result = completed.get(procId);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    Procedure proc = null;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    if (result == null) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      proc = procedures.get(procId);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      if (proc == null) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        result = completed.get(procId);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    return new Pair(result, proc);<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>   * Check if the user is this procedure's owner<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   * @param procId the target procedure<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param user the user<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return true if the user is the owner of the procedure,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   *   false otherwise or the owner is unknown.<a name="line.955"></a>
+<span class="sourceLineNo">956</span>   */<a name="line.956"></a>
+<span class="sourceLineNo">957</span>  public boolean isProcedureOwner(final long procId, final User user) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    if (user == null) return false;<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>    final Procedure proc = procedures.get(procId);<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    if (proc != null) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      return proc.getOwner().equals(user.getShortName());<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    final ProcedureInfo procInfo = completed.get(procId);<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    if (procInfo == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      // Procedure either does not exist or has already completed and got cleaned up.<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      // At this time, we cannot check the owner of the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      return false;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    return ProcedureInfo.isProcedureOwner(procInfo, user);<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>  /**<a name="line.974"></a>
+<span class="sourceLineNo">975</span>   * List procedures.<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * @return the procedures in a list<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   */<a name="line.977"></a>
+<span class="sourceLineNo">978</span>  public List&lt;ProcedureInfo&gt; listProcedures() {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    final List&lt;ProcedureInfo&gt; procedureLists = new ArrayList&lt;&gt;(procedures.size() + completed.size());<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    for (Map.Entry&lt;Long, Procedure&gt; p: procedures.entrySet()) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>      procedureLists.add(ProcedureUtil.convertToProcedureInfo(p.getValue()));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    for (Map.Entry&lt;Long, ProcedureInfo&gt; e: completed.entrySet()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // Note: The procedure could show up twice in the list with different state, as<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      // it could complete after we walk through procedures list and insert into<a name="line.985"></a>
+<span class="sourceLineNo">986</span>      // procedureList - it is ok, as we will use the information in the ProcedureInfo<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      // to figure it out; to prevent this would increase the complexity of the logic.<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      procedureLists.add(e.getValue());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    return procedureLists;<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>  //  Listeners helpers<a name="line.994"></a>
+<span class="sourceLineNo">995</span>  // ==========================================================================<a name="line.995"></a>
+<span class="sourceLineNo">996</span>  public void registerListener(ProcedureExecutorListener listener) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    this.listeners.add(listener);<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>  public boolean unregisterListener(ProcedureExecutorListener listener) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    return this.listeners.remove(listener);<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>  private void sendProcedureLoadedNotification(final long procId) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    if (!this.listeners.isEmpty()) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        try {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          listener.procedureLoaded(procId);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        } catch (Throwable e) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  private void sendProcedureAddedNotification(final long procId) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    if (!this.listeners.isEmpty()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        try {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          listener.procedureAdded(procId);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        } catch (Throwable e) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<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>  }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  private void sendProcedureFinishedNotification(final long procId) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    if (!this.listeners.isEmpty()) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      for (ProcedureExecutorListener listener: this.listeners) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        try {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          listener.procedureFinished(procId);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        } catch (Throwable e) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>          LOG.error("Listener " + listener + " had an error: " + e.getMessage(), e);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>    }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  // ==========================================================================<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>  //  Procedure IDs helpers<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  // ==========================================================================<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>  private long nextProcId() {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    long procId = lastProcId.incrementAndGet();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    if (procId &lt; 0) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      while (!lastProcId.compareAndSet(procId, 0)) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        procId = lastProcId.get();<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        if (procId &gt;= 0)<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>          break;<a name="line.1049"></a>
 <span class="sourceLineNo">1050</span>      }<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return procId;<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>  @VisibleForTesting<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  protected long getLastProcId() {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    return lastProcId.get();<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>  @VisibleForTesting<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>  }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span><a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>  // ==========================================================================<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  //  Executions<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  // ==========================================================================<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>  private void executeProcedure(final Procedure proc) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    if (rootProcId == null) {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      executeRollback(proc);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      return;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    if (procStack == null) return;<a name="line.1082"></a>
+<span class="sourceLineNo">1051</span>      while (procedures.containsKey(procId)) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        procId = lastProcId.incrementAndGet();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    assert procId &gt;= 0 : "Invalid procId " + procId;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    return procId;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>  }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>  @VisibleForTesting<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>  protected long getLastProcId() {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    return lastProcId.get();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>  }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  @VisibleForTesting<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>  public Set&lt;Long&gt; getActiveProcIds() {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    return procedures.keySet();<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>  private Long getRootProcedureId(Procedure proc) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>    return Procedure.getRootProcedureId(procedures, proc);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>  }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  // ==========================================================================<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>  //  Executions<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  // ==========================================================================<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>  private void executeProcedure(final Procedure proc) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    final Long rootProcId = getRootProcedureId(proc);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    if (rootProcId == null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>      // The 'proc' was ready to run but the root procedure was rolledback<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>      executeRollback(proc);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>      return;<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    }<a name="line.1082"></a>
 <span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    do {<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>      // Try to acquire the execution<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      if (!procStack.acquire(proc)) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        if (procStack.setRollback()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>            case LOCK_ACQUIRED:<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>                break;<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>            case LOCK_YIELD_WAIT:<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>              procStack.unsetRollback();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>              scheduler.yield(proc);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>              break;<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>            case LOCK_EVENT_WAIT:<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>              procStack.unsetRollback();<a name="line.1097"></a>
+<span class="sourceLineNo">1084</span>    final RootProcedureState procStack = rollbackStack.get(rootProcId);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    if (procStack == null) return;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    do {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>      // Try to acquire the execution<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>      if (!procStack.acquire(proc)) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>        if (procStack.setRollback()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>          // we have the 'rollback-lock' we can start rollingback<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          switch (executeRollback(rootProcId, procStack)) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>            case LOCK_ACQUIRED:<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                break;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>            case LOCK_YIELD_WAIT:<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>              procStack.unsetRollback();<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>              scheduler.yield(proc);<a name="line.1097"></a>
 <span class="sourceLineNo">1098</span>              break;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>            default:<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>              throw new UnsupportedOperationException();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>          }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        } else {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>          // if we can't rollback means that some child is still running.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>          // the rollback will be executed after all the children are done.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          if (!proc.wasExecuted()) {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>            switch (executeRollback(proc)) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>              case LOCK_ACQUIRED:<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>                break;<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>              case LOCK_YIELD_WAIT:<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>                scheduler.yield(proc);<a name="line.1111"></a>
+<span class="sourceLineNo">1099</span>            case LOCK_EVENT_WAIT:<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>              procStack.unsetRollback();<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>              break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>            default:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>              throw new UnsupportedOperationException();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>          }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>        } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>          // if we can't rollback means that some child is still running.<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>          // the rollback will be executed after all the children are done.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>          // If the procedure was never executed, remove and mark it as rolledback.<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>          if (!proc.wasExecuted()) {<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>            switch (executeRollback(proc)) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>              case LOCK_ACQUIRED:<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>                break;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>              case LOCK_EVENT_WAIT:<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>                break;<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>              default:<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>                throw new UnsupportedOperationException();<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>        break;<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>      }<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span><a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      // Execute the procedure<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      switch (acquireLock(proc)) {<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>        case LOCK_ACQUIRED:<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>          execProcedure(procStack, proc);<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>          releaseLock(proc, false);<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>          break;<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>        case LOCK_YIELD_WAIT:<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          scheduler.yield(proc);<a name="line.1131"></a>
+<span class="sourceLineNo">1113</span>              case LOCK_YIELD_WAIT:<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                scheduler.yield(proc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>              case LOCK_EVENT_WAIT:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                break;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>              default:<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                throw new UnsupportedOperationException();<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>            }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          }<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        break;<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>      // Execute the procedure<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      assert proc.getState() == ProcedureState.RUNNABLE : proc;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      switch (acquireLock(proc)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        case LOCK_ACQUIRED:<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>          execProcedure(procStack, proc);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          releaseLock(proc, false);<a name="line.1131"></a>
 <span class="sourceLineNo">1132</span>          break;<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>        case LOCK_EVENT_WAIT:<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>          // someone will wake us up when the lock is available<a name="line.1134"></a>
+<span class="sourceLineNo">1133</span>        case LOCK_YIELD_WAIT:<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          scheduler.yield(proc);<a name="line.1134"></a>
 <span class="sourceLineNo">1135</span>          break;<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        default:<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>          throw new UnsupportedOperationException();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      }<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>      procStack.release(proc);<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      // useful to test the procedure recovery.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (testing != null &amp;&amp; !isRunning()) {<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>      if (proc.isSuccess()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>        if (LOG.isDebugEnabled()) {<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        // Finalize the procedure state<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        if (proc.getProcId() == rootProcId) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>          procedureFinished(proc);<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        } else {<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          execCompletionCleanup(proc);<a name="line.1155"></a>
+<span class="sourceLineNo">1136</span>        case LOCK_EVENT_WAIT:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          // someone will wake us up when the lock is available<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>          break;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        default:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>          throw new UnsupportedOperationException();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>      procStack.release(proc);<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // useful to test the procedure recovery.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      if (testing != null &amp;&amp; !isRunning()) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        break;<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>      if (proc.isSuccess()) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        // update metrics on finishing the procedure<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        if (LOG.isDebugEnabled()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>          LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));<a name="line.1155"></a>
 <span class="sourceLineNo">1156</span>        }<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>        break;<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      }<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    } while (procStack.isFailed());<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    final TEnvironment env = getEnvironment();<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      return LockState.LOCK_ACQUIRED;<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    return proc.doAcquireLock(env);<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    final TEnvironment env = getEnvironment();<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    // for how the framework works, we know that we will always have the lock<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (force || !proc.holdLock(env)) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      proc.doReleaseLock(env);<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * Execute the rollback of the full procedure stack.<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * finished to user, and the result will be the fatal exception.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   */<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    if (exception == null) {<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>      exception = procStack.getException();<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>      rootProc.setFailure(exception);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      store.update(rootProc);<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span><a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span><a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>    int stackTail = subprocStack.size();<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    boolean reuseLock = false;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    while (stackTail --&gt; 0) {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span><a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      LockState lockState;<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>        // queue waiting for the lock availability<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>        return lockState;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      }<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span><a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>      lockState = executeRollback(proc);<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // If the next procedure is the same to this one<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      // we can avoid to lock/unlock each step<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      if (!reuseLock) {<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>        releaseLock(proc, false);<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span><a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // allows to kill the executor before something is stored to the wal.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // useful to test the procedure recovery.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      if (abortRollback) {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>        return lockState;<a name="line.1226"></a>
+<span class="sourceLineNo">1157</span>        // Finalize the procedure state<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        if (proc.getProcId() == rootProcId) {<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>          procedureFinished(proc);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>          execCompletionCleanup(proc);<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>      }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>    } while (procStack.isFailed());<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>  private LockState acquireLock(final Procedure proc) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    final TEnvironment env = getEnvironment();<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    // hasLock() is used in conjunction with holdLock().<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    // This allows us to not rewrite or carry around the hasLock() flag<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>    // for every procedure. the hasLock() have meaning only if holdLock() is true.<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    if (proc.holdLock(env) &amp;&amp; proc.hasLock(env)) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      return LockState.LOCK_ACQUIRED;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    return proc.doAcquireLock(env);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  private void releaseLock(final Procedure proc, final boolean force) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    final TEnvironment env = getEnvironment();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    // for how the framework works, we know that we will always have the lock<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    // when we call releaseLock(), so we can avoid calling proc.hasLock()<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    if (force || !proc.holdLock(env)) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      proc.doReleaseLock(env);<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><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>  /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   * Execute the rollback of the full procedure stack.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Once the procedure is rolledback, the root-procedure will be visible as<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * finished to user, and the result will be the fatal exception.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  private LockState executeRollback(final long rootProcId, final RootProcedureState procStack) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>    final Procedure rootProc = procedures.get(rootProcId);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    RemoteProcedureException exception = rootProc.getException();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (exception == null) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      exception = procStack.getException();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>      rootProc.setFailure(exception);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      store.update(rootProc);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final List&lt;Procedure&gt; subprocStack = procStack.getSubproceduresStack();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    assert subprocStack != null : "Called rollback with no steps executed rootProc=" + rootProc;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>    int stackTail = subprocStack.size();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    boolean reuseLock = false;<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    while (stackTail --&gt; 0) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      final Procedure proc = subprocStack.get(stackTail);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      LockState lockState;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (!reuseLock &amp;&amp; (lockState = acquireLock(proc)) != LockState.LOCK_ACQUIRED) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        // can't take a lock on the procedure, add the root-proc back on the<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>        // queue waiting for the lock availability<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        return lockState;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      lockState = executeRollback(proc);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      boolean abortRollback = lockState != LockState.LOCK_ACQUIRED;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>      abortRollback |= !isRunning() || !store.isRunning();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      // If the next procedure is the same to this one<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      // (e.g. StateMachineProcedure reuse the same instance)<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>      // we can avoid to lock/unlock each step<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>      reuseLock = stackTail &gt; 0 &amp;&amp; (subprocStack.get(stackTail - 1) == proc) &amp;&amp; !abortRollback;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      if (!reuseLock) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        releaseLock(proc, false);<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>      subprocStack.remove(stackTail);<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>      // if the procedure is kind enough to pass the slot to someone else, yield<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      if (proc.isYieldAfterExecutionStep(getEnvironment())) {<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>        return LockState.LOCK_YIELD_WAIT;<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>      }<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span><a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      if (proc != rootProc) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        execCompletionCleanup(proc);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span><a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // Finalize the procedure state<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    LOG.info("Rolled back " + rootProc +<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>             " exec-time=" + StringUtils.humanTimeDiff(rootProc.elapsedTime()));<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    procedureFinished(rootProc);<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    return LockState.LOCK_ACQUIRED;<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span><a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  /**<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * Execute the rollback of the procedure step.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   * It updates the store with the new state (stack index)<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>   * or will remove completly the procedure in case it is a child.<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  private LockState executeRollback(final Procedure proc) {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>    try {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      proc.doRollback(getEnvironment());<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    } catch (IOException e) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      if (LOG.isDebugEnabled()) {<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        LOG.debug("Roll back attempt failed for " + proc, e);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>      }<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    } catch (InterruptedException e) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      handleInterruptedException(proc, e);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    } catch (Throwable e) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      // Catch NullPointerExceptions or similar errors...<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>      LOG.fatal("CODE-BUG: Uncatched runtime exception for procedure: " + proc, e);<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    }<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span><a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    // allows to kill the executor before something is stored to the wal.<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>    // useful to test the procedure recovery.<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    if (testing != null &amp;&amp; testing.shouldKillBeforeStoreUpdate()) {<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      LOG.debug("TESTING: Kill before store update");<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>      stop();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      return LockState.LOCK_YIELD_WAIT;<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>    }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    if (proc.removeStackIndex()) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      proc.setState(ProcedureState.ROLLEDBACK);<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>      if (proc.hasParent()) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>        store.delete(proc.getProcId());<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>        procedures.remove(proc.getProcId());<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>      } else {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        final long[] childProcIds = rollbackStack.get(proc.getProcId()).getSubprocedureIds();<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>        if (childProcIds != null) {<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>          store.delete(proc, childProcIds);<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        } else {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          store.update(proc);<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>    } else {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      store.update(proc);<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return LockState.LOCK_ACQUIRED;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  /**<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   * Executes the specified procedure<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   *  - calls the doExecute() of the procedure<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>   *  - if the procedure execution didn't fail (e.g. invalid user input)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   *     - ...and returned subprocedures<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>   *        - the subprocedures are initialized.<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   *        - the subprocedures are added to the store<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   *        - the subprocedures are added to the runnable queue<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *        - the procedure is now in a WAITING state, waiting for the subprocedures to complete<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   *     - ...if there are no subprocedure<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>   *        - the procedure completed successfully<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>   *        - if there is a parent (WAITING)<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>   *            - the parent state will be set to RUNNABLE<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   *  - in case of failure<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   *    - the store is updated with the new state<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   *    - the executor (caller of this method) will start the rollback of the procedure<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   */<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  private void execProcedure(final RootProcedureState procStack, final Procedure procedure) {<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>    Preconditions.checkArgument(procedure.getState() == ProcedureState.RUNNABLE);<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Execute the procedure<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    boolean suspended = false;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    boolean reExecute = false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    Procedure[] subprocs = null;<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>    do {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      reExecute = false;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      try {<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        subprocs = procedure.doExecute(getEnvironment());<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        if (subprocs != null &amp;&amp; subprocs.length == 0) {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>          subprocs = null;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      } catch (ProcedureSuspendedException e) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        suspended = true;<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      } catch (ProcedureYieldException e) {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        if (LOG.isTraceEnabled()) {<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>          LOG.trace("Yield " + procedure + ": " + e.getMessage());<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        scheduler.yield(procedure);<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        return;<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>      } catch (InterruptedException e) {<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        handleInterruptedException(procedure, e);<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        scheduler.yield(procedure);<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        return;<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      } catch (Throwable e) {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>        // Catch NullPointerExceptions or similar errors...<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        String msg = "CODE-BUG: Uncaught runtime exception: " + procedure;<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        LOG.error(msg, e);<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        procedure.setFailure(new RemoteProcedureException(msg, e));<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      }<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span><a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>      if (!procedure.isFailed()) {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        if (subprocs != null) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>          if (subprocs.length == 1 &amp;&amp; subprocs[0] == procedure) {<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>            // quick-shortcut for a state machine like procedure<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>            subprocs = null;<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>            reExecute = true;<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          } else {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      

<TRUNCATED>