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

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

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 6d411951d -> 39cf5e9b6


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html
index 02eb12c..104ec8d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html
@@ -53,1051 +53,1080 @@
 <span class="sourceLineNo">045</span>import org.apache.commons.logging.Log;<a name="line.45"></a>
 <span class="sourceLineNo">046</span>import org.apache.commons.logging.LogFactory;<a name="line.46"></a>
 <span class="sourceLineNo">047</span>import org.apache.hadoop.conf.Configuration;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.CategoryBasedTimeout;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.Cell;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.HConstants;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.TableName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.coprocessor.Batch.Callback;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.junit.Assert;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.junit.BeforeClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.junit.Rule;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.junit.Test;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.junit.experimental.categories.Category;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.junit.rules.TestRule;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.mockito.Mockito;<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>@Category({ClientTests.class, MediumTests.class})<a name="line.72"></a>
-<span class="sourceLineNo">073</span>public class TestAsyncProcess {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Rule public final TestRule timeout = CategoryBasedTimeout.builder().withTimeout(this.getClass()).<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      withLookingForStuckThread(true).build();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private final static Log LOG = LogFactory.getLog(TestAsyncProcess.class);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final TableName DUMMY_TABLE =<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      TableName.valueOf("DUMMY_TABLE");<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private static final byte[] DUMMY_BYTES_1 = "DUMMY_BYTES_1".getBytes();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static final byte[] DUMMY_BYTES_2 = "DUMMY_BYTES_2".getBytes();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private static final byte[] DUMMY_BYTES_3 = "DUMMY_BYTES_3".getBytes();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private static final byte[] FAILS = "FAILS".getBytes();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private static final Configuration conf = new Configuration();<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private static ServerName sn = ServerName.valueOf("s1:1,1");<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private static ServerName sn2 = ServerName.valueOf("s2:2,2");<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private static ServerName sn3 = ServerName.valueOf("s3:3,3");<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  private static HRegionInfo hri1 =<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_1, DUMMY_BYTES_2, false, 1);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  private static HRegionInfo hri2 =<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_2, HConstants.EMPTY_END_ROW, false, 2);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  private static HRegionInfo hri3 =<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_3, HConstants.EMPTY_END_ROW, false, 3);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  private static HRegionLocation loc1 = new HRegionLocation(hri1, sn);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  private static HRegionLocation loc2 = new HRegionLocation(hri2, sn);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  private static HRegionLocation loc3 = new HRegionLocation(hri3, sn2);<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  // Replica stuff<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  private static HRegionInfo hri1r1 = RegionReplicaUtil.getRegionInfoForReplica(hri1, 1),<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      hri1r2 = RegionReplicaUtil.getRegionInfoForReplica(hri1, 2);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  private static HRegionInfo hri2r1 = RegionReplicaUtil.getRegionInfoForReplica(hri2, 1);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  private static RegionLocations hrls1 = new RegionLocations(new HRegionLocation(hri1, sn),<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      new HRegionLocation(hri1r1, sn2), new HRegionLocation(hri1r2, sn3));<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  private static RegionLocations hrls2 = new RegionLocations(new HRegionLocation(hri2, sn2),<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      new HRegionLocation(hri2r1, sn3));<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  private static RegionLocations hrls3 = new RegionLocations(new HRegionLocation(hri3, sn3), null);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  private static final String success = "success";<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  private static Exception failure = new Exception("failure");<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  private static int NB_RETRIES = 3;<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  @BeforeClass<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public static void beforeClass(){<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, NB_RETRIES);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  static class CountingThreadFactory implements ThreadFactory {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    final AtomicInteger nbThreads;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    ThreadFactory realFactory =  Threads.newDaemonThreadFactory("test-TestAsyncProcess");<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    @Override<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    public Thread newThread(Runnable r) {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      nbThreads.incrementAndGet();<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      return realFactory.newThread(r);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>    CountingThreadFactory(AtomicInteger nbThreads){<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      this.nbThreads = nbThreads;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>  static class MyAsyncProcess extends AsyncProcess {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    final AtomicInteger nbMultiResponse = new AtomicInteger();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    final AtomicInteger nbActions = new AtomicInteger();<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public List&lt;AsyncRequestFuture&gt; allReqs = new ArrayList&lt;AsyncRequestFuture&gt;();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    public AtomicInteger callsCt = new AtomicInteger();<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>    @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    protected &lt;Res&gt; AsyncRequestFutureImpl&lt;Res&gt; createAsyncRequestFuture(TableName tableName,<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        List&lt;Action&lt;Row&gt;&gt; actions, long nonceGroup, ExecutorService pool,<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        Batch.Callback&lt;Res&gt; callback, Object[] results, boolean needResults) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      // Test HTable has tableName of null, so pass DUMMY_TABLE<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      AsyncRequestFutureImpl&lt;Res&gt; r = super.createAsyncRequestFuture(<a name="line.143"></a>
-<span class="sourceLineNo">144</span>          DUMMY_TABLE, actions, nonceGroup, pool, callback, results, needResults);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      allReqs.add(r);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      return r;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    public MyAsyncProcess(ClusterConnection hc, Configuration conf) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      this(hc, conf, new AtomicInteger());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    }<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    public MyAsyncProcess(ClusterConnection hc, Configuration conf, AtomicInteger nbThreads) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.154"></a>
-<span class="sourceLineNo">155</span>          new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(nbThreads)),<a name="line.155"></a>
-<span class="sourceLineNo">156</span>            new RpcRetryingCallerFactory(conf), false, new RpcControllerFactory(conf));<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public MyAsyncProcess(<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        ClusterConnection hc, Configuration conf, boolean useGlobalErrors) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.161"></a>
-<span class="sourceLineNo">162</span>        new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(new AtomicInteger())),<a name="line.162"></a>
-<span class="sourceLineNo">163</span>          new RpcRetryingCallerFactory(conf), useGlobalErrors, new RpcControllerFactory(conf));<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public MyAsyncProcess(ClusterConnection hc, Configuration conf, boolean useGlobalErrors,<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        @SuppressWarnings("unused") boolean dummy) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.168"></a>
-<span class="sourceLineNo">169</span>              new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(new AtomicInteger())) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        @Override<a name="line.170"></a>
-<span class="sourceLineNo">171</span>        public void execute(Runnable command) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>          throw new RejectedExecutionException("test under failure");<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>          new RpcRetryingCallerFactory(conf), useGlobalErrors, new RpcControllerFactory(conf));<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>    @Override<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    public &lt;Res&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.179"></a>
-<span class="sourceLineNo">180</span>        boolean atLeastOne, Callback&lt;Res&gt; callback, boolean needResults)<a name="line.180"></a>
-<span class="sourceLineNo">181</span>            throws InterruptedIOException {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      // We use results in tests to check things, so override to always save them.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      return super.submit(DUMMY_TABLE, rows, atLeastOne, callback, true);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>    @Override<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(MultiServerCallable&lt;Row&gt; callable) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      callsCt.incrementAndGet();<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      final MultiResponse mr = createMultiResponse(<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          callable.getMulti(), nbMultiResponse, nbActions, new ResponseGenerator() {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>            @Override<a name="line.191"></a>
-<span class="sourceLineNo">192</span>            public void addResponse(MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>              if (Arrays.equals(FAILS, a.getAction().getRow())) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>                mr.add(regionName, a.getOriginalIndex(), failure);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>              } else {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>                mr.add(regionName, a.getOriginalIndex(), success);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>              }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>            }<a name="line.198"></a>
-<span class="sourceLineNo">199</span>          });<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>      return new RpcRetryingCallerImpl&lt;MultiResponse&gt;(100, 10, 9) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        @Override<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable,<a name="line.203"></a>
-<span class="sourceLineNo">204</span>                                                int callTimeout)<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        throws IOException, RuntimeException {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>          try {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>            // sleep one second in order for threadpool to start another thread instead of reusing<a name="line.207"></a>
-<span class="sourceLineNo">208</span>            // existing one.<a name="line.208"></a>
-<span class="sourceLineNo">209</span>            Thread.sleep(1000);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>          } catch (InterruptedException e) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>            // ignore error<a name="line.211"></a>
-<span class="sourceLineNo">212</span>          }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>          return mr;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      };<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  }<a name="line.217"></a>
-<span class="sourceLineNo">218</span><a name="line.218"></a>
-<span class="sourceLineNo">219</span>  static class CallerWithFailure extends RpcRetryingCallerImpl&lt;MultiResponse&gt;{<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>    public CallerWithFailure() {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      super(100, 100, 9);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>    @Override<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable, int callTimeout)<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        throws IOException, RuntimeException {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      throw new IOException("test");<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>  static class AsyncProcessWithFailure extends MyAsyncProcess {<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    public AsyncProcessWithFailure(ClusterConnection hc, Configuration conf) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      super(hc, conf, true);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      serverTrackerTimeout = 1;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    }<a name="line.237"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.CallQueueTooBigException;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.CategoryBasedTimeout;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.Cell;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HConstants;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ServerName;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableName;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.coprocessor.Batch.Callback;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.junit.Assert;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.junit.BeforeClass;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.Rule;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.Test;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.junit.experimental.categories.Category;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.junit.rules.TestRule;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.mockito.Mockito;<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>@Category({ClientTests.class, MediumTests.class})<a name="line.73"></a>
+<span class="sourceLineNo">074</span>public class TestAsyncProcess {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  @Rule public final TestRule timeout = CategoryBasedTimeout.builder().withTimeout(this.getClass()).<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      withLookingForStuckThread(true).build();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private final static Log LOG = LogFactory.getLog(TestAsyncProcess.class);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final TableName DUMMY_TABLE =<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      TableName.valueOf("DUMMY_TABLE");<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final byte[] DUMMY_BYTES_1 = "DUMMY_BYTES_1".getBytes();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private static final byte[] DUMMY_BYTES_2 = "DUMMY_BYTES_2".getBytes();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private static final byte[] DUMMY_BYTES_3 = "DUMMY_BYTES_3".getBytes();<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private static final byte[] FAILS = "FAILS".getBytes();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private static final Configuration conf = new Configuration();<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private static ServerName sn = ServerName.valueOf("s1:1,1");<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  private static ServerName sn2 = ServerName.valueOf("s2:2,2");<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  private static ServerName sn3 = ServerName.valueOf("s3:3,3");<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private static HRegionInfo hri1 =<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_1, DUMMY_BYTES_2, false, 1);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  private static HRegionInfo hri2 =<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_2, HConstants.EMPTY_END_ROW, false, 2);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  private static HRegionInfo hri3 =<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_3, HConstants.EMPTY_END_ROW, false, 3);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  private static HRegionLocation loc1 = new HRegionLocation(hri1, sn);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  private static HRegionLocation loc2 = new HRegionLocation(hri2, sn);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  private static HRegionLocation loc3 = new HRegionLocation(hri3, sn2);<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  // Replica stuff<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  private static HRegionInfo hri1r1 = RegionReplicaUtil.getRegionInfoForReplica(hri1, 1),<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      hri1r2 = RegionReplicaUtil.getRegionInfoForReplica(hri1, 2);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  private static HRegionInfo hri2r1 = RegionReplicaUtil.getRegionInfoForReplica(hri2, 1);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private static RegionLocations hrls1 = new RegionLocations(new HRegionLocation(hri1, sn),<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      new HRegionLocation(hri1r1, sn2), new HRegionLocation(hri1r2, sn3));<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  private static RegionLocations hrls2 = new RegionLocations(new HRegionLocation(hri2, sn2),<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      new HRegionLocation(hri2r1, sn3));<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  private static RegionLocations hrls3 = new RegionLocations(new HRegionLocation(hri3, sn3), null);<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  private static final String success = "success";<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  private static Exception failure = new Exception("failure");<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private static int NB_RETRIES = 3;<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  @BeforeClass<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public static void beforeClass(){<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, NB_RETRIES);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  static class CountingThreadFactory implements ThreadFactory {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    final AtomicInteger nbThreads;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    ThreadFactory realFactory =  Threads.newDaemonThreadFactory("test-TestAsyncProcess");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public Thread newThread(Runnable r) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      nbThreads.incrementAndGet();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      return realFactory.newThread(r);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>    CountingThreadFactory(AtomicInteger nbThreads){<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      this.nbThreads = nbThreads;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>  static class MyAsyncProcess extends AsyncProcess {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    final AtomicInteger nbMultiResponse = new AtomicInteger();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final AtomicInteger nbActions = new AtomicInteger();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    public List&lt;AsyncRequestFuture&gt; allReqs = new ArrayList&lt;AsyncRequestFuture&gt;();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    public AtomicInteger callsCt = new AtomicInteger();<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>    @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    protected &lt;Res&gt; AsyncRequestFutureImpl&lt;Res&gt; createAsyncRequestFuture(TableName tableName,<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        List&lt;Action&lt;Row&gt;&gt; actions, long nonceGroup, ExecutorService pool,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        Batch.Callback&lt;Res&gt; callback, Object[] results, boolean needResults) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      // Test HTable has tableName of null, so pass DUMMY_TABLE<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      AsyncRequestFutureImpl&lt;Res&gt; r = super.createAsyncRequestFuture(<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          DUMMY_TABLE, actions, nonceGroup, pool, callback, results, needResults);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      allReqs.add(r);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      return r;<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>    public MyAsyncProcess(ClusterConnection hc, Configuration conf) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      this(hc, conf, new AtomicInteger());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>    public MyAsyncProcess(ClusterConnection hc, Configuration conf, AtomicInteger nbThreads) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.155"></a>
+<span class="sourceLineNo">156</span>          new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(nbThreads)),<a name="line.156"></a>
+<span class="sourceLineNo">157</span>            new RpcRetryingCallerFactory(conf), false, new RpcControllerFactory(conf));<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>    public MyAsyncProcess(<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        ClusterConnection hc, Configuration conf, boolean useGlobalErrors) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(new AtomicInteger())),<a name="line.163"></a>
+<span class="sourceLineNo">164</span>          new RpcRetryingCallerFactory(conf), useGlobalErrors, new RpcControllerFactory(conf));<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>    public MyAsyncProcess(ClusterConnection hc, Configuration conf, boolean useGlobalErrors,<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        @SuppressWarnings("unused") boolean dummy) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.169"></a>
+<span class="sourceLineNo">170</span>              new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(new AtomicInteger())) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        public void execute(Runnable command) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          throw new RejectedExecutionException("test under failure");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      },<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          new RpcRetryingCallerFactory(conf), useGlobalErrors, new RpcControllerFactory(conf));<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    public &lt;Res&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        boolean atLeastOne, Callback&lt;Res&gt; callback, boolean needResults)<a name="line.181"></a>
+<span class="sourceLineNo">182</span>            throws InterruptedIOException {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      // We use results in tests to check things, so override to always save them.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      return super.submit(DUMMY_TABLE, rows, atLeastOne, callback, 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>    @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(MultiServerCallable&lt;Row&gt; callable) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      callsCt.incrementAndGet();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      final MultiResponse mr = createMultiResponse(<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          callable.getMulti(), nbMultiResponse, nbActions, new ResponseGenerator() {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>            @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>            public void addResponse(MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>              if (Arrays.equals(FAILS, a.getAction().getRow())) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                mr.add(regionName, a.getOriginalIndex(), failure);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>              } else {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                mr.add(regionName, a.getOriginalIndex(), success);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>              }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>            }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>          });<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>      return new RpcRetryingCallerImpl&lt;MultiResponse&gt;(100, 10, 9) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                                int callTimeout)<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        throws IOException, RuntimeException {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>            // sleep one second in order for threadpool to start another thread instead of reusing<a name="line.208"></a>
+<span class="sourceLineNo">209</span>            // existing one.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            Thread.sleep(1000);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>          } catch (InterruptedException e) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>            // ignore error<a name="line.212"></a>
+<span class="sourceLineNo">213</span>          }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          return mr;<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>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>  static class CallerWithFailure extends RpcRetryingCallerImpl&lt;MultiResponse&gt;{<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>    private final IOException e;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>    public CallerWithFailure(IOException e) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      super(100, 100, 9);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      this.e = e;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>    @Override<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable, int callTimeout)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        throws IOException, RuntimeException {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      throw e;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  static class AsyncProcessWithFailure extends MyAsyncProcess {<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    @Override<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(MultiServerCallable&lt;Row&gt; callable) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      callsCt.incrementAndGet();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      return new CallerWithFailure();<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  class MyAsyncProcessWithReplicas extends MyAsyncProcess {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    private Set&lt;byte[]&gt; failures = new TreeSet&lt;byte[]&gt;(new Bytes.ByteArrayComparator());<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private long primarySleepMs = 0, replicaSleepMs = 0;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    private Map&lt;ServerName, Long&gt; customPrimarySleepMs = new HashMap&lt;ServerName, Long&gt;();<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    private final AtomicLong replicaCalls = new AtomicLong(0);<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>    public void addFailures(HRegionInfo... hris) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      for (HRegionInfo hri : hris) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        failures.add(hri.getRegionName());<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>    public long getReplicaCallCount() {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      return replicaCalls.get();<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span>    public void setPrimaryCallDelay(ServerName server, long primaryMs) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      customPrimarySleepMs.put(server, primaryMs);<a name="line.263"></a>
+<span class="sourceLineNo">239</span>    private final IOException ioe;<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    public AsyncProcessWithFailure(ClusterConnection hc, Configuration conf, IOException ioe) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      super(hc, conf, true);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.ioe = ioe;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      serverTrackerTimeout = 1;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>    @Override<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(MultiServerCallable&lt;Row&gt; callable) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      callsCt.incrementAndGet();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      return new CallerWithFailure(ioe);<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>  class MyAsyncProcessWithReplicas extends MyAsyncProcess {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    private Set&lt;byte[]&gt; failures = new TreeSet&lt;byte[]&gt;(new Bytes.ByteArrayComparator());<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    private long primarySleepMs = 0, replicaSleepMs = 0;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    private Map&lt;ServerName, Long&gt; customPrimarySleepMs = new HashMap&lt;ServerName, Long&gt;();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    private final AtomicLong replicaCalls = new AtomicLong(0);<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>    public void addFailures(HRegionInfo... hris) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      for (HRegionInfo hri : hris) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        failures.add(hri.getRegionName());<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><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    public MyAsyncProcessWithReplicas(ClusterConnection hc, Configuration conf) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      super(hc, conf);<a name="line.267"></a>
+<span class="sourceLineNo">266</span>    public long getReplicaCallCount() {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      return replicaCalls.get();<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>    public void setCallDelays(long primaryMs, long replicaMs) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      this.primarySleepMs = primaryMs;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      this.replicaSleepMs = replicaMs;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>    @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        MultiServerCallable&lt;Row&gt; callable) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      final MultiResponse mr = createMultiResponse(<a name="line.278"></a>
-<span class="sourceLineNo">279</span>          callable.getMulti(), nbMultiResponse, nbActions, new ResponseGenerator() {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>            @Override<a name="line.280"></a>
-<span class="sourceLineNo">281</span>            public void addResponse(MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>              if (failures.contains(regionName)) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>                mr.add(regionName, a.getOriginalIndex(), failure);<a name="line.283"></a>
-<span class="sourceLineNo">284</span>              } else {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>                boolean isStale = !RegionReplicaUtil.isDefaultReplica(a.getReplicaId());<a name="line.285"></a>
-<span class="sourceLineNo">286</span>                mr.add(regionName, a.getOriginalIndex(),<a name="line.286"></a>
-<span class="sourceLineNo">287</span>                    Result.create(new Cell[0], null, isStale));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>              }<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            }<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          });<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      // Currently AsyncProcess either sends all-replica, or all-primary request.<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      final boolean isDefault = RegionReplicaUtil.isDefaultReplica(<a name="line.292"></a>
-<span class="sourceLineNo">293</span>          callable.getMulti().actions.values().iterator().next().iterator().next().getReplicaId());<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      final ServerName server = ((MultiServerCallable&lt;?&gt;)callable).getServerName();<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      String debugMsg = "Call to " + server + ", primary=" + isDefault + " with "<a name="line.295"></a>
-<span class="sourceLineNo">296</span>          + callable.getMulti().actions.size() + " entries: ";<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      for (byte[] region : callable.getMulti().actions.keySet()) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        debugMsg += "[" + Bytes.toStringBinary(region) + "], ";<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      }<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      LOG.debug(debugMsg);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      if (!isDefault) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        replicaCalls.incrementAndGet();<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>      return new RpcRetryingCallerImpl&lt;MultiResponse&gt;(100, 10, 9) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        @Override<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable, int callTimeout)<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        throws IOException, RuntimeException {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>          long sleep = -1;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>          if (isDefault) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>            Long customSleep = customPrimarySleepMs.get(server);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>            sleep = (customSleep == null ? primarySleepMs : customSleep.longValue());<a name="line.312"></a>
-<span class="sourceLineNo">313</span>          } else {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>            sleep = replicaSleepMs;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>          }<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          if (sleep != 0) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>            try {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>              Thread.sleep(sleep);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>            } catch (InterruptedException e) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>            }<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          }<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          return mr;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      };<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  static MultiResponse createMultiResponse(final MultiAction&lt;Row&gt; multi,<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      AtomicInteger nbMultiResponse, AtomicInteger nbActions, ResponseGenerator gen) {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    final MultiResponse mr = new MultiResponse();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    nbMultiResponse.incrementAndGet();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    for (Map.Entry&lt;byte[], List&lt;Action&lt;Row&gt;&gt;&gt; entry : multi.actions.entrySet()) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      byte[] regionName = entry.getKey();<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      for (Action&lt;Row&gt; a : entry.getValue()) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        nbActions.incrementAndGet();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        gen.addResponse(mr, regionName, a);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return mr;<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>  private static interface ResponseGenerator {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    void addResponse(final MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a);<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  /**<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   * Returns our async process.<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   */<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  static class MyConnectionImpl extends ConnectionImplementation {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    public static class TestRegistry implements Registry {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      @Override<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      public void init(Connection connection) {}<a name="line.352"></a>
+<span class="sourceLineNo">270</span>    public void setPrimaryCallDelay(ServerName server, long primaryMs) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      customPrimarySleepMs.put(server, primaryMs);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>    public MyAsyncProcessWithReplicas(ClusterConnection hc, Configuration conf) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      super(hc, conf);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>    public void setCallDelays(long primaryMs, long replicaMs) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      this.primarySleepMs = primaryMs;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      this.replicaSleepMs = replicaMs;<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>    @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        MultiServerCallable&lt;Row&gt; callable) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      final MultiResponse mr = createMultiResponse(<a name="line.286"></a>
+<span class="sourceLineNo">287</span>          callable.getMulti(), nbMultiResponse, nbActions, new ResponseGenerator() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>            @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>            public void addResponse(MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>              if (failures.contains(regionName)) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                mr.add(regionName, a.getOriginalIndex(), failure);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>              } else {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                boolean isStale = !RegionReplicaUtil.isDefaultReplica(a.getReplicaId());<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                mr.add(regionName, a.getOriginalIndex(),<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                    Result.create(new Cell[0], null, isStale));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>              }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>          });<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      // Currently AsyncProcess either sends all-replica, or all-primary request.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      final boolean isDefault = RegionReplicaUtil.isDefaultReplica(<a name="line.300"></a>
+<span class="sourceLineNo">301</span>          callable.getMulti().actions.values().iterator().next().iterator().next().getReplicaId());<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      final ServerName server = ((MultiServerCallable&lt;?&gt;)callable).getServerName();<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      String debugMsg = "Call to " + server + ", primary=" + isDefault + " with "<a name="line.303"></a>
+<span class="sourceLineNo">304</span>          + callable.getMulti().actions.size() + " entries: ";<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      for (byte[] region : callable.getMulti().actions.keySet()) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        debugMsg += "[" + Bytes.toStringBinary(region) + "], ";<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      LOG.debug(debugMsg);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      if (!isDefault) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        replicaCalls.incrementAndGet();<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>      return new RpcRetryingCallerImpl&lt;MultiResponse&gt;(100, 10, 9) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        @Override<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable, int callTimeout)<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        throws IOException, RuntimeException {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>          long sleep = -1;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>          if (isDefault) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            Long customSleep = customPrimarySleepMs.get(server);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>            sleep = (customSleep == null ? primarySleepMs : customSleep.longValue());<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          } else {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>            sleep = replicaSleepMs;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          if (sleep != 0) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>            try {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>              Thread.sleep(sleep);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>            } catch (InterruptedException e) {<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>          return mr;<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>  }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>  static MultiResponse createMultiResponse(final MultiAction&lt;Row&gt; multi,<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      AtomicInteger nbMultiResponse, AtomicInteger nbActions, ResponseGenerator gen) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    final MultiResponse mr = new MultiResponse();<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    nbMultiResponse.incrementAndGet();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    for (Map.Entry&lt;byte[], List&lt;Action&lt;Row&gt;&gt;&gt; entry : multi.actions.entrySet()) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      byte[] regionName = entry.getKey();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      for (Action&lt;Row&gt; a : entry.getValue()) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        nbActions.incrementAndGet();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        gen.addResponse(mr, regionName, a);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      }<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return mr;<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>  private static interface ResponseGenerator {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    void addResponse(final MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>  }<a name="line.352"></a>
 <span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>      @Override<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      public RegionLocations getMetaRegionLocation() throws IOException {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        return null;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">354</span>  /**<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   * Returns our async process.<a name="line.355"></a>
+<span class="sourceLineNo">356</span>   */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  static class MyConnectionImpl extends ConnectionImplementation {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    public static class TestRegistry implements Registry {<a name="line.358"></a>
 <span class="sourceLineNo">359</span>      @Override<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      public String getClusterId() {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        return "testClusterId";<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>      @Override<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      public int getCurrentNrHRS() throws IOException {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>        return 1;<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    final AtomicInteger nbThreads = new AtomicInteger(0);<a name="line.370"></a>
+<span class="sourceLineNo">360</span>      public void init(Connection connection) {}<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>      @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      public RegionLocations getMetaRegionLocation() throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        return null;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>      @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      public String getClusterId() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        return "testClusterId";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      }<a name="line.370"></a>
 <span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>    protected MyConnectionImpl(Configuration conf) throws IOException {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      super(setupConf(conf), null, null);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>    private static Configuration setupConf(Configuration conf) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      conf.setClass(RegistryFactory.REGISTRY_IMPL_CONF_KEY, TestRegistry.class, Registry.class);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      return conf;<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>    @Override<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    public RegionLocations locateRegion(TableName tableName,<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        byte[] row, boolean useCache, boolean retry, int replicaId) throws IOException {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      return new RegionLocations(loc1);<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  /**<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * Returns our async process.<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   */<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  static class MyConnectionImpl2 extends MyConnectionImpl {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    List&lt;HRegionLocation&gt; hrl;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    final boolean usedRegions[];<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>    protected MyConnectionImpl2(List&lt;HRegionLocation&gt; hrl) throws IOException {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      super(conf);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      this.hrl = hrl;<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      this.usedRegions = new boolean[hrl.size()];<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    }<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>    @Override<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    public RegionLocations locateRegion(TableName tableName,<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        byte[] row, boolean useCache, boolean retry, int replicaId) throws IOException {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      int i = 0;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      for (HRegionLocation hr : hrl){<a name="line.405"></a>
-<span class="sourceLineNo">406</span>        if (Arrays.equals(row, hr.getRegionInfo().getStartKey())) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          usedRegions[i] = true;<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          return new RegionLocations(hr);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        i++;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      }<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      return null;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  @Test<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  public void testSubmit() throws Exception {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    ClusterConnection hc = createHConnection();<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    puts.add(createPut(1, true));<a name="line.422"></a>
+<span class="sourceLineNo">372</span>      @Override<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      public int getCurrentNrHRS() throws IOException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        return 1;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      }<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    }<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>    final AtomicInteger nbThreads = new AtomicInteger(0);<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    protected MyConnectionImpl(Configuration conf) throws IOException {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      super(setupConf(conf), null, null);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    }<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>    private static Configuration setupConf(Configuration conf) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      conf.setClass(RegistryFactory.REGISTRY_IMPL_CONF_KEY, TestRegistry.class, Registry.class);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      return conf;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>    @Override<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public RegionLocations locateRegion(TableName tableName,<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        byte[] row, boolean useCache, boolean retry, int replicaId) throws IOException {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      return new RegionLocations(loc1);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>  /**<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * Returns our async process.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  static class MyConnectionImpl2 extends MyConnectionImpl {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    List&lt;HRegionLocation&gt; hrl;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    final boolean usedRegions[];<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>    protected MyConnectionImpl2(List&lt;HRegionLocation&gt; hrl) throws IOException {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      super(conf);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      this.hrl = hrl;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      this.usedRegions = new boolean[hrl.size()];<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>    @Override<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    public RegionLocations locateRegion(TableName tableName,<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        byte[] row, boolean useCache, boolean retry, int replicaId) throws IOException {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      int i = 0;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      for (HRegionLocation hr : hrl){<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        if (Arrays.equals(row, hr.getRegionInfo().getStartKey())) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>          usedRegions[i] = true;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          return new RegionLocations(hr);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        }<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        i++;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      return null;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    }<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  }<a name="line.422"></a>
 <span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    Assert.assertTrue(puts.isEmpty());<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>  @Test<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  public void testSubmitWithCB() throws Exception {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    ClusterConnection hc = createHConnection();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    final AtomicInteger updateCalled = new AtomicInteger(0);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    Batch.Callback&lt;Object&gt; cb = new Batch.Callback&lt;Object&gt;() {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      @Override<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      public void update(byte[] region, byte[] row, Object result) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>        updateCalled.incrementAndGet();<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      }<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    };<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.438"></a>
-<span class="sourceLineNo">439</span><a name="line.439"></a>
-<span class="sourceLineNo">440</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    puts.add(createPut(1, true));<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>    final AsyncRequestFuture ars = ap.submit(DUMMY_TABLE, puts, false, cb, false);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    Assert.assertTrue(puts.isEmpty());<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    ars.waitUntilDone();<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    Assert.assertEquals(updateCalled.get(), 1);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  }<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span>  @Test<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  public void testSubmitBusyRegion() throws Exception {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    ClusterConnection hc = createHConnection();<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    puts.add(createPut(1, true));<a name="line.455"></a>
+<span class="sourceLineNo">424</span>  @Test<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  public void testSubmit() throws Exception {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    ClusterConnection hc = createHConnection();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    puts.add(createPut(1, true));<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    Assert.assertTrue(puts.isEmpty());<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>  @Test<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  public void testSubmitWithCB() throws Exception {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    ClusterConnection hc = createHConnection();<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    final AtomicInteger updateCalled = new AtomicInteger(0);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    Batch.Callback&lt;Object&gt; cb = new Batch.Callback&lt;Object&gt;() {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      public void update(byte[] region, byte[] row, Object result) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        updateCalled.incrementAndGet();<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>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    puts.add(createPut(1, true));<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>    final AsyncRequestFuture ars = ap.submit(DUMMY_TABLE, puts, false, cb, false);<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    Assert.assertTrue(puts.isEmpty());<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    ars.waitUntilDone();<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    Assert.assertEquals(updateCalled.get(), 1);<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>    ap.incTaskCounters(Arrays.asList(hri1.getRegionName()), sn);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    Assert.assertEquals(puts.size(), 1);<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>    ap.decTaskCounters(Arrays.asList(hri1.getRegionName()), sn);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    Assert.assertEquals(0, puts.size());<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>  @Test<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public void testSubmitBusyRegionServer() throws Exception {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    ClusterConnection hc = createHConnection();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>    ap.taskCounterPerServer.put(sn2, new AtomicInteger(ap.maxConcurrentTasksPerServer));<a name="line.472"></a>
+<span class="sourceLineNo">457</span>  @Test<a name="line.457"></a>
+<span class="sourceLineNo">458</span>  public void testSubmitBusyRegion() throws Exception {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    ClusterConnection hc = createHConnection();<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    puts.add(createPut(1, true));<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span>    ap.incTaskCounters(Arrays.asList(hri1.getRegionName()), sn);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    Assert.assertEquals(puts.size(), 1);<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>    ap.decTaskCounters(Arrays.asList(hri1.getRegionName()), sn);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    Assert.assertEquals(0, puts.size());<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>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    puts.add(createPut(1, true));<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    puts.add(createPut(3, true)); // &lt;== this one won't be taken, the rs is busy<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    puts.add(createPut(1, true)); // &lt;== this one will make it, the region is already in<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    puts.add(createPut(2, true)); // &lt;== new region, but the rs is ok<a name="line.478"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>  @Test<a name="line.475"></a>
+<span class="sourceLineNo">476</span>  public void testSubmitBusyRegionServer() throws Exception {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    ClusterConnection hc = createHConnection();<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.478"></a>
 <span class="sourceLineNo">479</span><a name="line.479"></a>
-<span class="sourceLineNo">480</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    Assert.assertEquals(" puts=" + puts, 1, puts.size());<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>    ap.taskCounterPerServer.put(sn2, new AtomicInteger(ap.maxConcurrentTasksPerServer - 1));<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    Assert.assertTrue(puts.isEmpty());<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">480</span>    ap.taskCounterPerServer.put(sn2, new AtomicInteger(ap.maxConcurrentTasksPerServer));<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    puts.add(createPut(1, true));<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    puts.add(createPut(3, true)); // &lt;== this one won't be taken, the rs is busy<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    puts.add(createPut(1, true)); // &lt;== this one will make it, the region is already in<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    puts.add(createPut(2, true)); // &lt;== new region, but the rs is ok<a name="line.486"></a>
 <span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>  @Test<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  public void testFail() throws Exception {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    MyAsyncProcess ap = new MyAsyncProcess(createHConnection(), conf, false);<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    Put p = createPut(1, false);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    puts.add(p);<a name="line.494"></a>
+<span class="sourceLineNo">488</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    Assert.assertEquals(" puts=" + puts, 1, puts.size());<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>    ap.taskCounterPerServer.put(sn2, new AtomicInteger(ap.maxConcurrentTasksPerServer - 1));<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    Assert.assertTrue(puts.isEmpty());<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>    AsyncRequestFuture ars = ap.submit(DUMMY_TABLE, puts, false, null, true);<a name="line.496"></

<TRUNCATED>

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

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

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

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

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

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

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

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


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.html
index d0040f6..3180076 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.html
@@ -61,1780 +61,1781 @@
 <span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.TableName;<a name="line.53"></a>
 <span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.backoff.ServerStatistics;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.htrace.Trace;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>import com.google.common.annotations.VisibleForTesting;<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> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * synchronous caller such as HTable.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * &lt;p&gt;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * to track operation progress.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * &lt;/p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * The class manages internally the retries.<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;/p&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;p&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;/p&gt;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * &lt;p&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * retrieving errors from different threads may be not thread safe.<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * arising from older operations.<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * &lt;/p&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * gets as well.<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;/p&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>@InterfaceAudience.Private<a name="line.98"></a>
-<span class="sourceLineNo">099</span>class AsyncProcess {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * this stage.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   */<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      "hbase.client.start.log.errors.counter";<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  /**<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * The context used to wait for results from one submit call.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   *  */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public static interface AsyncRequestFuture {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    public boolean hasError();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /**<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * Return value from a submit that didn't contain any requests.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    final Object[] result = new Object[0];<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public boolean hasError() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      return null;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>    @Override<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      return null;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    @Override<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    public Object[] getResults() {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      return result;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  };<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * the replica calls are launched. See results for details of this process.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private static class ReplicaResultState {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public ReplicaResultState(int callCount) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      this.callCount = callCount;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    int callCount;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    BatchErrors replicaErrors = null;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    @Override<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    public String toString() {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.htrace.Trace;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>import com.google.common.annotations.VisibleForTesting;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * synchronous caller such as HTable.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * &lt;p&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.68"></a>
+<span class="sourceLineNo">069</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * to track operation progress.<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;/p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * The class manages internally the retries.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;/p&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;p&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;/p&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * retrieving errors from different threads may be not thread safe.<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * arising from older operations.<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;/p&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;p&gt;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * gets as well.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/p&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>@InterfaceAudience.Private<a name="line.99"></a>
+<span class="sourceLineNo">100</span>class AsyncProcess {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * this stage.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      "hbase.client.start.log.errors.counter";<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * The context used to wait for results from one submit call.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   *  */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public static interface AsyncRequestFuture {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public boolean hasError();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Return value from a submit that didn't contain any requests.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final Object[] result = new Object[0];<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    public boolean hasError() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      return false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      return null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>    @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return null;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    public Object[] getResults() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      return result;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  };<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   * the replica calls are launched. See results for details of this process.<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private static class ReplicaResultState {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public ReplicaResultState(int callCount) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      this.callCount = callCount;<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>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    int callCount;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    BatchErrors replicaErrors = null;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    public String toString() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  // TODO: many of the fields should be made private<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  protected final long id;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  protected final ClusterConnection connection;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected final RpcRetryingCallerFactory rpcCallerFactory;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  protected final RpcControllerFactory rpcFactory;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  protected final BatchErrors globalErrors;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  protected final ExecutorService pool;<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  protected final AtomicLong tasksInProgress = new AtomicLong(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  protected final ConcurrentMap&lt;byte[], AtomicInteger&gt; taskCounterPerRegion =<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      new ConcurrentSkipListMap&lt;byte[], AtomicInteger&gt;(Bytes.BYTES_COMPARATOR);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected final ConcurrentMap&lt;ServerName, AtomicInteger&gt; taskCounterPerServer =<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      new ConcurrentHashMap&lt;ServerName, AtomicInteger&gt;();<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  // Start configuration settings.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final int startLogErrorsCnt;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  /**<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * The number of tasks simultaneously executed on the cluster.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  protected final int maxTotalConcurrentTasks;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * The number of tasks we run in parallel on a single region.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * With 1 (the default) , we ensure that the ordering of the queries is respected: we don't start<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * a set of operations on a region before the previous one is done. As well, this limits<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * the pressure we put on the region server.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  protected final int maxConcurrentTasksPerRegion;<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * The number of task simultaneously executed on a single region server.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  protected final int maxConcurrentTasksPerServer;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  protected final long pause;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  protected int numTries;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  protected int serverTrackerTimeout;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected int timeout;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  protected long primaryCallTimeoutMicroseconds;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // End configuration settings.<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  protected static class BatchErrors {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final List&lt;Throwable&gt; throwables = new ArrayList&lt;Throwable&gt;();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final List&lt;Row&gt; actions = new ArrayList&lt;Row&gt;();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    private final List&lt;String&gt; addresses = new ArrayList&lt;String&gt;();<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    public synchronized void add(Throwable ex, Row row, ServerName serverName) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (row == null){<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        throw new IllegalArgumentException("row cannot be null. location=" + serverName);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>      throwables.add(ex);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      actions.add(row);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      addresses.add(serverName != null ? serverName.toString() : "null");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public boolean hasErrors() {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return !throwables.isEmpty();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private synchronized RetriesExhaustedWithDetailsException makeException() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      return new RetriesExhaustedWithDetailsException(<a name="line.245"></a>
-<span class="sourceLineNo">246</span>          new ArrayList&lt;Throwable&gt;(throwables),<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          new ArrayList&lt;Row&gt;(actions), new ArrayList&lt;String&gt;(addresses));<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>    public synchronized void clear() {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      throwables.clear();<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      actions.clear();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      addresses.clear();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public synchronized void merge(BatchErrors other) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      throwables.addAll(other.throwables);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      actions.addAll(other.actions);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      addresses.addAll(other.addresses);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  public AsyncProcess(ClusterConnection hc, Configuration conf, ExecutorService pool,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcRetryingCallerFactory rpcCaller, boolean useGlobalErrors,<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      RpcControllerFactory rpcFactory) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    if (hc == null) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      throw new IllegalArgumentException("HConnection cannot be null.");<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>    this.connection = hc;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    this.pool = pool;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    this.globalErrors = useGlobalErrors ? new BatchErrors() : null;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    this.id = COUNTER.incrementAndGet();<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // how many times we could try in total, one more than retry number<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    this.numTries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER) + 1;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    this.timeout = conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    this.primaryCallTimeoutMicroseconds = conf.getInt(PRIMARY_CALL_TIMEOUT_KEY, 10000);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    this.maxTotalConcurrentTasks = conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    this.maxConcurrentTasksPerServer = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERSERVER_TASKS,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERSERVER_TASKS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.maxConcurrentTasksPerRegion = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERREGION_TASKS,<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERREGION_TASKS);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.startLogErrorsCnt =<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        conf.getInt(START_LOG_ERRORS_AFTER_COUNT_KEY, DEFAULT_START_LOG_ERRORS_AFTER_COUNT);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (this.maxTotalConcurrentTasks &lt;= 0) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throw new IllegalArgumentException("maxTotalConcurrentTasks=" + maxTotalConcurrentTasks);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (this.maxConcurrentTasksPerServer &lt;= 0) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      throw new IllegalArgumentException("maxConcurrentTasksPerServer=" +<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          maxConcurrentTasksPerServer);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    if (this.maxConcurrentTasksPerRegion &lt;= 0) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      throw new IllegalArgumentException("maxConcurrentTasksPerRegion=" +<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          maxConcurrentTasksPerRegion);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Server tracker allows us to do faster, and yet useful (hopefully), retries.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // However, if we are too useful, we might fail very quickly due to retry count limit.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // To avoid this, we are going to cheat for now (see HBASE-7659), and calculate maximum<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    // retry time if normal retries were used. Then we will retry until this time runs out.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // If we keep hitting one server, the net effect will be the incremental backoff, and<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    // essentially the same number of retries as planned. If we have to do faster retries,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // we will do more retries in aggregate, but the user will be none the wiser.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    this.serverTrackerTimeout = 0;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (int i = 0; i &lt; this.numTries; ++i) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      serverTrackerTimeout += ConnectionUtils.getPauseTime(this.pause, i);<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>    this.rpcCallerFactory = rpcCaller;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    this.rpcFactory = rpcFactory;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @return pool if non null, otherwise returns this.pool if non null, otherwise throws<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   *         RuntimeException<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  private ExecutorService getPool(ExecutorService pool) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (pool != null) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      return pool;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    if (this.pool != null) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      return this.pool;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    throw new RuntimeException("Neither AsyncProcess nor request have ExecutorService");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  /**<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * See {@link #submit(ExecutorService, TableName, List, boolean, Batch.Callback, boolean)}.<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public &lt;CResult&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback, boolean needResults)<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      throws InterruptedIOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return submit(null, tableName, rows, atLeastOne, callback, needResults);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  /**<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * Extract from the rows list what we can submit. The rows we can not submit are kept in the<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * list. Does not send requests to replicas (not currently used for anything other<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * than streaming puts anyway).<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   *<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * @param pool ExecutorService to use.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * @param tableName The table for which this request is needed.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * @param callback Batch callback. Only called on success (94 behavior).<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * @param needResults Whether results are needed, or can be discarded.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @param rows - the submitted row. Modified by the method: we remove the rows we took.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * @param atLeastOne true if we should submit at least a subset.<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   */<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  public &lt;CResult&gt; AsyncRequestFuture submit(ExecutorService pool, TableName tableName,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      List&lt;? extends Row&gt; rows, boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      boolean needResults) throws InterruptedIOException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (rows.isEmpty()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return NO_REQS_RESULT;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    List&lt;Action&lt;Row&gt;&gt; retainedActions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    long nonceGroup = ng.getNonceGroup(); // Currently, nonce group is per entire client.<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    // Location errors that happen before we decide what requests to take.<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    List&lt;Exception&gt; locationErrors = null;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    List&lt;Integer&gt; locationErrorRows = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    do {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      // Wait until there is at least one slot for a new task.<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      waitForMaximumCurrentTasks(maxTotalConcurrentTasks - 1);<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>      // Remember the previous decisions about regions or region servers we put in the<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      //  final multi.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      Map&lt;Long, Boolean&gt; regionIncluded = new HashMap&lt;Long, Boolean&gt;();<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      Map&lt;ServerName, Boolean&gt; serverIncluded = new HashMap&lt;ServerName, Boolean&gt;();<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>      int posInList = -1;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      Iterator&lt;? extends Row&gt; it = rows.iterator();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      while (it.hasNext()) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        Row r = it.next();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        HRegionLocation loc;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (r == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            throw new IllegalArgumentException("#" + id + ", row cannot be null");<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          // Make sure we get 0-s replica.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          RegionLocations locs = connection.locateRegion(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>              tableName, r.getRow(), true, true, RegionReplicaUtil.DEFAULT_REPLICA_ID);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (locs == null || locs.isEmpty() || locs.getDefaultRegionLocation() == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            throw new IOException("#" + id + ", no location found, aborting submit for"<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                + " tableName=" + tableName + " rowkey=" + Bytes.toStringBinary(r.getRow()));<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          loc = locs.getDefaultRegionLocation();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        } catch (IOException ex) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          locationErrors = new ArrayList&lt;Exception&gt;();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          locationErrorRows = new ArrayList&lt;Integer&gt;();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error("Failed to get region location ", ex);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          // This action failed before creating ars. Retain it, but do not add to submit list.<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          // We will then add it to ars in an already-failed state.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          retainedActions.add(new Action&lt;Row&gt;(r, ++posInList));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          locationErrors.add(ex);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>          locationErrorRows.add(posInList);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          it.remove();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>          break; // Backward compat: we stop considering actions on location error.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>        if (canTakeOperation(loc, regionIncluded, serverIncluded)) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, ++posInList);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>          setNonce(ng, r, action);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          retainedActions.add(action);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          // TODO: replica-get is not supported on this path<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          byte[] regionName = loc.getRegionInfo().getRegionName();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          addAction(loc.getServerName(), regionName, action, actionsByServer, nonceGroup);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          it.remove();<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>    } while (retainedActions.isEmpty() &amp;&amp; atLeastOne &amp;&amp; (locationErrors == null));<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>    if (retainedActions.isEmpty()) return NO_REQS_RESULT;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return submitMultiActions(tableName, retainedActions, nonceGroup, callback, null, needResults,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      locationErrors, locationErrorRows, actionsByServer, pool);<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>  &lt;CResult&gt; AsyncRequestFuture submitMultiActions(TableName tableName,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      List&lt;Action&lt;Row&gt;&gt; retainedActions, long nonceGroup, Batch.Callback&lt;CResult&gt; callback,<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Object[] results, boolean needResults, List&lt;Exception&gt; locationErrors,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      List&lt;Integer&gt; locationErrorRows, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      ExecutorService pool) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      tableName, retainedActions, nonceGroup, pool, callback, results, needResults);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Add location errors if any<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    if (locationErrors != null) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      for (int i = 0; i &lt; locationErrors.size(); ++i) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        int originalIndex = locationErrorRows.get(i);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        Row row = retainedActions.get(originalIndex).getAction();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        ars.manageError(originalIndex, row,<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          Retry.NO_LOCATION_PROBLEM, locationErrors.get(i), null);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    ars.sendMultiAction(actionsByServer, 1, null, false);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return ars;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Helper that is used when grouping the actions per region server.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   *<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param loc - the destination. Must not be null.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @param action - the action to add to the multiaction<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @param actionsByServer the multiaction per server<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param nonceGroup Nonce group.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private static void addAction(ServerName server, byte[] regionName, Action&lt;Row&gt; action,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer, long nonceGroup) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    MultiAction&lt;Row&gt; multiAction = actionsByServer.get(server);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (multiAction == null) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      multiAction = new MultiAction&lt;Row&gt;();<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      actionsByServer.put(server, multiAction);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (action.hasNonce() &amp;&amp; !multiAction.hasNonceGroup()) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      multiAction.setNonceGroup(nonceGroup);<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>    multiAction.add(regionName, action);<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>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Check if we should send new operations to this region or region server.<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * We're taking into account the past decision; if we have already accepted<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * operation on a given region, we accept all operations for this region.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   *<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param loc; the region and the server name we want to use.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @return true if this region is considered as busy.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  protected boolean canTakeOperation(HRegionLocation loc,<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                                     Map&lt;Long, Boolean&gt; regionsIncluded,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                                     Map&lt;ServerName, Boolean&gt; serversIncluded) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    long regionId = loc.getRegionInfo().getRegionId();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    Boolean regionPrevious = regionsIncluded.get(regionId);<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (regionPrevious != null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // We already know what to do with this region.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      return regionPrevious;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span>    Boolean serverPrevious = serversIncluded.get(loc.getServerName());<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    if (Boolean.FALSE.equals(serverPrevious)) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // It's a new region, on a region server that we have already excluded.<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return false;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    AtomicInteger regionCnt = taskCounterPerRegion.get(loc.getRegionInfo().getRegionName());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (regionCnt != null &amp;&amp; regionCnt.get() &gt;= maxConcurrentTasksPerRegion) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Too many tasks on this region already.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      return false;<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>    if (serverPrevious == null) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      // The region is ok, but we need to decide for this region server.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      int newServers = 0; // number of servers we're going to contact so far<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      for (Map.Entry&lt;ServerName, Boolean&gt; kv : serversIncluded.entrySet()) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (kv.getValue()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          newServers++;<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // Do we have too many total tasks already?<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      boolean ok = (newServers + tasksInProgress.get()) &lt; maxTotalConcurrentTasks;<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      if (ok) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>        // If the total is fine, is it ok for this individual server?<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        AtomicInteger serverCnt = taskCounterPerServer.get(loc.getServerName());<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        ok = (serverCnt == null || serverCnt.get() &lt; maxConcurrentTasksPerServer);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      if (!ok) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        serversIncluded.put(loc.getServerName(), Boolean.FALSE);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        return false;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>      serversIncluded.put(loc.getServerName(), Boolean.TRUE);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    } else {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      assert serverPrevious.equals(Boolean.TRUE);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    regionsIncluded.put(regionId, Boolean.TRUE);<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return true;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * See {@link #submitAll(ExecutorService, TableName, List, Batch.Callback, Object[])}.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   */<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(TableName tableName,<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    return submitAll(null, tableName, rows, callback, results);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
-<span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * Submit immediately the list of rows, whatever the server status. Kept for backward<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * compatibility: it allows to be used with the batch interface that return an array of objects.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   *<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * @param pool ExecutorService to use.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * @param tableName name of the table for which the submission is made.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param rows the list of rows.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param callback the callback.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @param results Optional array to return the results thru; backward compat.<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(ExecutorService pool, TableName tableName,<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    List&lt;Action&lt;Row&gt;&gt; actions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.563"></a>
-<span class="sourceLineNo">564</span><a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // The position will be used by the processBatch to match the object array returned.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    int posInList = -1;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    for (Row r : rows) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      posInList++;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (r instanceof Put) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        Put put = (Put) r;<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        if (put.isEmpty()) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          throw new IllegalArgumentException("No columns to insert for #" + (posInList+1)+ " item");<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, posInList);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      setNonce(ng, r, action);<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      actions.add(action);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        tableName, actions, ng.getNonceGroup(), getPool(pool), callback, results, results != null);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ars.groupAndSendMultiAction(actions, 1);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return ars;<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>  private static void setNonce(NonceGenerator ng, Row r, Action&lt;Row&gt; action) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (!(r instanceof Append) &amp;&amp; !(r instanceof Increment)) return;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    action.setNonce(ng.newNonce()); // Action handles NO_NONCE, so it's ok if ng is disabled.<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span><a name="line.590"></a>
-<span class="sourceLineNo">591</span>  /**<a name="line.591"></a>
-<span class="sourceLineNo">592</span>   * The context, and return value, for a single submit/submitAll call.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * Note on how this class (one AP submit) works. Initially, all requests are split into groups<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * by server; request is sent to each server in parallel; the RPC calls are not async so a<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * thread per server is used. Every time some actions fail, regions/locations might have<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * changed, so we re-group them by server and region again and send these groups in parallel<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * too. The result, in case of retries, is a "tree" of threads, with parent exiting after<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * scheduling children. This is why lots of code doesn't require any synchronization.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  protected class AsyncRequestFutureImpl&lt;CResult&gt; implements AsyncRequestFuture {<a name="line.600"></a>
-<span class="sourceLineNo">601</span><a name="line.601"></a>
-<span class="sourceLineNo">602</span>    /**<a name="line.602"></a>
-<span class="sourceLineNo">603</span>     * Runnable (that can be submitted to thread pool) that waits for when it's time<a name="line.603"></a>
-<span class="sourceLineNo">604</span>     * to issue replica calls, finds region replicas, groups the requests by replica and<a name="line.604"></a>
-<span class="sourceLineNo">605</span>     * issues the calls (on separate threads, via sendMultiAction).<a name="line.605"></a>
-<span class="sourceLineNo">606</span>     * This is done on a separate thread because we don't want to wait on user thread for<a name="line.606"></a>
-<span class="sourceLineNo">607</span>     * our asynchronous call, and usually we have to wait before making replica calls.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>     */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    private final class ReplicaCallIssuingRunnable implements Runnable {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      private final long startTime;<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      private final List&lt;Action&lt;Row&gt;&gt; initialActions;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>      public ReplicaCallIssuingRunnable(List&lt;Action&lt;Row&gt;&gt; initialActions, long startTime) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.initialActions = initialActions;<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        this.startTime = startTime;<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>      @Override<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      public void run() {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        boolean done = false;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        if (primaryCallTimeoutMicroseconds &gt; 0) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>          try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>            done = waitUntilDone(startTime * 1000L + primaryCallTimeoutMicroseconds);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          } catch (InterruptedException ex) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>            LOG.error("Replica thread was interrupted - no replica calls: " + ex.getMessage());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            return;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>          }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        if (done) return; // Done within primary timeout<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        List&lt;Action&lt;Row&gt;&gt; unknownLocActions = new ArrayList&lt;Action&lt;Row&gt;&gt;();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        if (replicaGetIndices == null) {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>          for (int i = 0; i &lt; results.length; ++i) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>            addReplicaActions(i, actionsByServer, unknownLocActions);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          }<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        } else {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>          for (int replicaGetIndice : replicaGetIndices) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>            addReplicaActions(replicaGetIndice, actionsByServer, unknownLocActions);<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>        if (!actionsByServer.isEmpty()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          sendMultiAction(actionsByServer, 1, null, unknownLocActions.isEmpty());<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        }<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        if (!unknownLocActions.isEmpty()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>          actionsByServer = new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          for (Action&lt;Row&gt; action : unknownLocActions) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>            addReplicaActionsAgain(action, actionsByServer);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          // Some actions may have completely failed, they are handled inside addAgain.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>          if (!actionsByServer.isEmpty()) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>            sendMultiAction(actionsByServer, 1, null, true);<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>      }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>      /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>       * Add replica actions to action map by server.<a name="line.658"></a>
-<span class="sourceLineNo">659</span>       * @param index Index of the original action.<a name="line.659"></a>
-<span class="sourceLineNo">660</span>       * @param actionsByServer The map by server to add it to.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>       */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      private void addReplicaActions(int index, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.662"></a>
-<span class="sourceLineNo">663</span>          List&lt;Action&lt;Row&gt;&gt; unknownReplicaActions) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>        if (results[index] != null) return; // opportunistic. Never goes from non-null to null.<a name="line.664"></a>
-<span class="sourceLineNo">665</span>        Action&lt;Row&gt; action = initialActions.get(index);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        RegionLocations loc = findAllLocationsOrFail(action, true);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>        if (loc == null) return;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>        HRegionLocation[] locs = loc.getRegionLocations();<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        if (locs.length == 1) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>          LOG.warn("No replicas found for " + action.getAction());<a name="line.670"></a>
-<span class="sourceLineNo">671</span>          return;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        synchronized (replicaResultLock) {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          // Don't run replica calls if the original has finished. We could do it e.g. if<a name="line.674"></a>
-<span class="sourceLineNo">675</span>          // original has already failed before first replica call (unlikely given retries),<a name="line.675"></a>
-<span class="sourceLineNo">676</span>          // but that would require additional synchronization w.r.t. returning to caller.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          if (results[index] != null) return;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // We set the number of calls here. After that any path must call setResult/setError.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          // True even for replicas that are not found - if we refuse to send we MUST set error.<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          results[index] = new ReplicaResultState(locs.length);<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        for (int i = 1; i &lt; locs.length; ++i) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          Action&lt;Row&gt; replicaAction = new Action&lt;Row&gt;(action, i);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          if (locs[i] != null) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>            addAction(locs[i].getServerName(), locs[i].getRegionInfo().getRegionName(),<a name="line.685"></a>
-<span class="sourceLineNo">686</span>                replicaAction, actionsByServer, nonceGroup);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          } else {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>            unknownReplicaActions.add(replicaAction);<a name="line.688"></a>
-<span class="sourceLineNo">689</span>          }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      }<a name="line.691"></a>
-<span class="sourceLineNo">692</span><a name="line.692"></a>
-<span class="sourceLineNo">693</span>      private void addReplicaActionsAgain(<a name="line.693"></a>
-<span class="sourceLineNo">694</span>          Action&lt;Row&gt; action, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        if (action.getReplicaId() == RegionReplicaUtil.DEFAULT_REPLICA_ID) {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          throw new AssertionError("Cannot have default replica here");<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        HRegionLocation loc = getReplicaLocationOrFail(action);<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        if (loc == null) return;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        addAction(loc.getServerName(), loc.getRegionInfo().getRegionName(),<a name="line.700"></a>
-<span class="sourceLineNo">701</span>            action, actionsByServer, nonceGroup);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>    /**<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     * Runnable (that can be submitted to thread pool) that submits MultiAction to a<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * single server. The server call is synchronous, therefore we do it on a thread pool.<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     */<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    private final class SingleServerRequestRunnable implements Runnable {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      private final MultiAction&lt;Row&gt; multiAction;<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      private final int numAttempt;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      private final ServerName server;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>      private SingleServerRequestRunnable(<a name="line.715"></a>
-<span class="sourceLineNo">716</span>          MultiAction&lt;Row&gt; multiAction, int numAttempt, ServerName server,<a name="line.716"></a>
-<span class="sourceLineNo">717</span>          Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>        this.multiAction = multiAction;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        this.numAttempt = numAttempt;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        this.server = server;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        this.callsInProgress = callsInProgress;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>      @Override<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      public void run() {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        MultiResponse res;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        MultiServerCallable&lt;Row&gt; callable = null;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>        try {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>          callable = createCallable(server, tableName, multiAction);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>          try {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>            RpcRetryingCaller&lt;MultiResponse&gt; caller = createCaller(callable);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>            if (callsInProgress != null) callsInProgress.add(callable);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>            res = caller.callWithoutRetries(callable, timeout);<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span>            if (res == null) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>              // Cancelled<a name="line.736"></a>
-<span class="sourceLineNo">737</span>              return;<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>          } catch (IOException e) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            // The service itself failed . It may be an error coming from the communication<a name="line.741"></a>
-<span class="sourceLineNo">742</span>            //   layer, but, as well, a functional error raised by the server.<a name="line.742"></a>
-<span class="sourceLineNo">743</span>            receiveGlobalFailure(multiAction, server, numAttempt, e);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>            return;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          } catch (Throwable t) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>            // This should not happen. Let's log &amp; retry anyway.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>            LOG.error("#" + id + ", Caught throwable while calling. This is unexpected." +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>                " Retrying. Server is " + server + ", tableName=" + tableName, t);<a name="line.748"></a>
-<span class="sourceLineNo">749</span>            receiveGlobalFailure(multiAction, server, numAttempt, t);<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            return;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>          }<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>          // Normal case: we received an answer from the server, and it's not an exception.<a name="line.753"></a>
-<span class="sourceLineNo">754</span>          receiveMultiAction(multiAction, server, res, numAttempt);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>        } catch (Throwable t) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // Something really bad happened. We are on the send thread that will now die.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          LOG.error("Internal AsyncProcess #" + id + " error for "<a name="line.757"></a>
-<span class="sourceLineNo">758</span>              + tableName + " processing for " + server, t);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          throw new RuntimeException(t);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        } finally {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          decTaskCounters(multiAction.getRegions(), server);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>          if (callsInProgress != null &amp;&amp; callable != null) {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>            callsInProgress.remove(callable);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          }<a name="line.764"></a>
-<span class="sourceLineNo">765</span>        }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    private final Batch.Callback&lt;CResult&gt; callback;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    private final BatchErrors errors;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    private final ConnectionImplementation.ServerErrorTracker errorsByServer;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    private final ExecutorService pool;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.773"></a>
-<span class="sourceLineNo">774</span><a name="line.774"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  // TODO: many of the fields should be made private<a name="line.184"></a>
+<span class="s

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html
index ee363fc..16f504e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html
@@ -43,2273 +43,2227 @@
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.MultiActionResultTooLarge;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.RegionTooBusyException;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.RetryImmediatelyException;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.ServerName;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.TableName;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.security.User;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.zookeeper.KeeperException;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>import javax.annotation.Nullable;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>import java.io.Closeable;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import java.io.IOException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import java.io.InterruptedIOException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import java.net.InetAddress;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import java.net.InetSocketAddress;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import java.util.ArrayList;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import java.util.Date;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import java.util.List;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import java.util.concurrent.BlockingQueue;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import java.util.concurrent.ConcurrentMap;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import java.util.concurrent.ExecutorService;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import java.util.concurrent.TimeUnit;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>/**<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.111"></a>
-<span class="sourceLineNo">112</span>@InterfaceAudience.Private<a name="line.112"></a>
-<span class="sourceLineNo">113</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  private final boolean hostnamesCanChange;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  private final long pause;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private final boolean useMetaReplicas;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private final int numTries;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  final int rpcTimeout;<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>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.131"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ServerName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.TableName;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.security.User;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.zookeeper.KeeperException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>import javax.annotation.Nullable;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>import java.io.Closeable;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import java.io.IOException;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import java.io.InterruptedIOException;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import java.net.InetAddress;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import java.net.InetSocketAddress;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import java.util.ArrayList;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import java.util.Date;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import java.util.List;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import java.util.concurrent.BlockingQueue;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import java.util.concurrent.ConcurrentMap;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import java.util.concurrent.ExecutorService;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import java.util.concurrent.TimeUnit;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>/**<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.103"></a>
+<span class="sourceLineNo">104</span> */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.107"></a>
+<span class="sourceLineNo">108</span>@InterfaceAudience.Private<a name="line.108"></a>
+<span class="sourceLineNo">109</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private final boolean hostnamesCanChange;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  private final long pause;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  private final boolean useMetaReplicas;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private final int numTries;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  final int rpcTimeout;<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private final AsyncProcess asyncProcess;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  // single tracker per connection<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  private final ServerStatisticTracker stats;<a name="line.131"></a>
 <span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private final AsyncProcess asyncProcess;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  // single tracker per connection<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  private final ServerStatisticTracker stats;<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  private volatile boolean closed;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private volatile boolean aborted;<a name="line.138"></a>
+<span class="sourceLineNo">133</span>  private volatile boolean closed;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private volatile boolean aborted;<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // package protected for the tests<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  ClusterStatusListener clusterStatusListener;<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
 <span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>  // package protected for the tests<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  ClusterStatusListener clusterStatusListener;<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private final Object metaRegionLock = new Object();<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private final Object masterAndZKLock = new Object();<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  // thread executor shared by all HTableInterface instances created<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  // by this connection<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private volatile ExecutorService batchPool = null;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  // by this connection<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private volatile boolean cleanupPool = false;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private final Configuration conf;<a name="line.161"></a>
+<span class="sourceLineNo">140</span>  private final Object metaRegionLock = new Object();<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final Object masterAndZKLock = new Object();<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  // thread executor shared by all HTableInterface instances created<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  // by this connection<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private volatile ExecutorService batchPool = null;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  // by this connection<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private volatile boolean cleanupPool = false;<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private final Configuration conf;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  private final TableConfiguration tableConfig;<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final TableConfiguration tableConfig;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  // Client rpc instance.<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private RpcClient rpcClient;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  private final MetaCache metaCache;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private final MetricsConnection metrics;<a name="line.171"></a>
+<span class="sourceLineNo">163</span>  // Client rpc instance.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private RpcClient rpcClient;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final MetaCache metaCache;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  private final MetricsConnection metrics;<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  protected User user;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.171"></a>
 <span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  protected User user;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.173"></a>
 <span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>  private final RetryingCallerInterceptor interceptor;<a name="line.175"></a>
 <span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private final RetryingCallerInterceptor interceptor;<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>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   Registry registry;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private final ClientBackoffPolicy backoffPolicy;<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>   * constructor<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * @param conf Configuration object<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  ConnectionImplementation(Configuration conf,<a name="line.192"></a>
-<span class="sourceLineNo">193</span>                           ExecutorService pool, User user) throws IOException {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    this.conf = conf;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.user = user;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    this.batchPool = pool;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    this.closed = false;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // how many times to try, one more than max *retry* time<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    this.rpcTimeout = conf.getInt(<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        if (nonceGenerator == null) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    } else {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      nonceGenerator = new NoNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      this.metrics = new MetricsConnection(this);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    } else {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      this.metrics = null;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>            ClusterStatusListener.Listener.class);<a name="line.237"></a>
+<span class="sourceLineNo">177</span>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   Registry registry;<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>  private final ClientBackoffPolicy backoffPolicy;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * constructor<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @param conf Configuration object<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  ConnectionImplementation(Configuration conf,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                           ExecutorService pool, User user) throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    this.conf = conf;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    this.user = user;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.batchPool = pool;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    this.closed = false;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // how many times to try, one more than max *retry* time<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.rpcTimeout = conf.getInt(<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (nonceGenerator == null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    } else {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      nonceGenerator = new NoNonceGenerator();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      this.metrics = new MetricsConnection(this);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      this.metrics = null;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.232"></a>
+<span class="sourceLineNo">233</span>            ClusterStatusListener.Listener.class);<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>    try {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      this.registry = setupRegistry();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      retrieveClusterId();<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.registry = setupRegistry();<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      retrieveClusterId();<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>      // Do we publish the status?<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      if (shouldListen) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        if (listenerClass == null) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.248"></a>
-<span class="sourceLineNo">249</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        } else {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.251"></a>
-<span class="sourceLineNo">252</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>                @Override<a name="line.253"></a>
-<span class="sourceLineNo">254</span>                public void newDead(ServerName sn) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>                  clearCaches(sn);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>                  rpcClient.cancelConnections(sn);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>              }, conf, listenerClass);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    } catch (Throwable e) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      // avoid leaks: registry, rpcClient, ...<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      LOG.debug("connection construction failed", e);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      close();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      throw e;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  /**<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param conn The connection for which to replace the generator.<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @return old nonce generator.<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  @VisibleForTesting<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      + cnm.getClass().getName());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    nonceGenerator = cnm;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    return ng;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * Look for an exception we know in the remote exception:<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * - hadoop.ipc wrapped exceptions<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * - nested exceptions<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   *<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   *            ThrottlingException<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @return null if we didn't find the exception, the exception otherwise.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public static Throwable findException(Object exception) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (exception == null || !(exception instanceof Throwable)) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      return null;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Throwable cur = (Throwable) exception;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    while (cur != null) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      if (cur instanceof RegionMovedException || cur instanceof RegionOpeningException<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          || cur instanceof RegionTooBusyException || cur instanceof ThrottlingException<a name="line.301"></a>
-<span class="sourceLineNo">302</span>          || cur instanceof RetryImmediatelyException) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return cur;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      }<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      if (cur instanceof RemoteException) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        RemoteException re = (RemoteException) cur;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        cur = re.unwrapRemoteException(<a name="line.307"></a>
-<span class="sourceLineNo">308</span>            RegionOpeningException.class, RegionMovedException.class,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>            RegionTooBusyException.class);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        if (cur == null) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          cur = re.unwrapRemoteException();<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        // unwrapRemoteException can return the exception given as a parameter when it cannot<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        //  unwrap it. In this case, there is no need to look further<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        // noinspection ObjectEquality<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        if (cur == re) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          return null;<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      } else {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        cur = cur.getCause();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">239</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // Do we publish the status?<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (shouldListen) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        if (listenerClass == null) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.244"></a>
+<span class="sourceLineNo">245</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.247"></a>
+<span class="sourceLineNo">248</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                @Override<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                public void newDead(ServerName sn) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                  clearCaches(sn);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                  rpcClient.cancelConnections(sn);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>              }, conf, listenerClass);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      }<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (Throwable e) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      // avoid leaks: registry, rpcClient, ...<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      LOG.debug("connection construction failed", e);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      close();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      throw e;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * @param conn The connection for which to replace the generator.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * @return old nonce generator.<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  @VisibleForTesting<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      + cnm.getClass().getName());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    nonceGenerator = cnm;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return ng;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    return getTable(TableName.valueOf(tableName));<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    return getTable(TableName.valueOf(tableName));<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>  @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    return getTable(tableName, getBatchPool());<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>  @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    if (params.getTableName() == null) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (params.getPool() == null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<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 null;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  @Override<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return getTable(TableName.valueOf(tableName));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  @Override<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    return getTable(TableName.valueOf(tableName));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return getTable(tableName, getBatchPool());<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    if (params.getTableName() == null) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (params.getPool() == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<a name="line.366"></a>
+<span class="sourceLineNo">323</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<a name="line.331"></a>
+<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>  @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    return new HRegionLocator(tableName, this);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  public Admin getAdmin() throws IOException {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    return new HBaseAdmin(this);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>  @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public MetricsConnection getConnectionMetrics() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return this.metrics;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  private ExecutorService getBatchPool() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (batchPool == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      synchronized (this) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        if (batchPool == null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.353"></a>
+<span class="sourceLineNo">354</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          this.cleanupPool = true;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    return this.batchPool;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    // shared HTable thread executor not yet initialized<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    if (maxThreads == 0) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.366"></a>
 <span class="sourceLineNo">367</span>    }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.369"></a>
+<span class="sourceLineNo">368</span>    if (coreThreads == 0) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<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>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return new HRegionLocator(tableName, this);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  public Admin getAdmin() throws IOException {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    return new HBaseAdmin(this);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>  @Override<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  public MetricsConnection getConnectionMetrics() {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    return this.metrics;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  private ExecutorService getBatchPool() {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    if (batchPool == null) {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      synchronized (this) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        if (batchPool == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.398"></a>
-<span class="sourceLineNo">399</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          this.cleanupPool = true;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      }<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    }<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    return this.batchPool;<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>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    // shared HTable thread executor not yet initialized<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    if (maxThreads == 0) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (coreThreads == 0) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    }<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    if (workQueue == null) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      workQueue =<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.420"></a>
-<span class="sourceLineNo">421</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.421"></a>
-<span class="sourceLineNo">422</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        coreThreads,<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        maxThreads,<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        keepAliveTime,<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        TimeUnit.SECONDS,<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        workQueue,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    if (this.metaLookupPool == null) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      synchronized (this) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (this.metaLookupPool == null) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          //Some of the threads would be used for meta replicas<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          //the queue is full, a new thread will be started<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          this.metaLookupPool = getThreadPool(<a name="line.443"></a>
-<span class="sourceLineNo">444</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.444"></a>
-<span class="sourceLineNo">445</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.445"></a>
-<span class="sourceLineNo">446</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return this.metaLookupPool;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    return batchPool;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
+<span class="sourceLineNo">371</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    if (workQueue == null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      workQueue =<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        coreThreads,<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        maxThreads,<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        keepAliveTime,<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        TimeUnit.SECONDS,<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        workQueue,<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    if (this.metaLookupPool == null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      synchronized (this) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (this.metaLookupPool == null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          //Some of the threads would be used for meta replicas<a name="line.394"></a>
+<span class="sourceLineNo">395</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.395"></a>
+<span class="sourceLineNo">396</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.396"></a>
+<span class="sourceLineNo">397</span>          //the queue is full, a new thread will be started<a name="line.397"></a>
+<span class="sourceLineNo">398</span>          this.metaLookupPool = getThreadPool(<a name="line.398"></a>
+<span class="sourceLineNo">399</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.399"></a>
+<span class="sourceLineNo">400</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.400"></a>
+<span class="sourceLineNo">401</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      }<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return this.metaLookupPool;<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>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    return batchPool;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>  private void shutdownPools() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      shutdownBatchPool(this.batchPool);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    pool.shutdown();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        pool.shutdownNow();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    } catch (InterruptedException e) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      pool.shutdownNow();<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>  /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * @return The cluster registry implementation to use.<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private Registry setupRegistry() throws IOException {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    return RegistryFactory.getRegistry(this);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span>  /**<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   * For tests only.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  @VisibleForTesting<a name="line.446"></a>
+<span class="sourceLineNo">447</span>  RpcClient getRpcClient() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    return rpcClient;<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>   * An identifier that will remain the same for a given connection.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>   */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>  public String toString(){<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    return "hconnection-0x" + Integer.toHexString(hashCode());<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>  protected String clusterId = null;<a name="line.459"></a>
 <span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private void shutdownPools() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      shutdownBatchPool(this.batchPool);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.466"></a>
+<span class="sourceLineNo">461</span>  protected void retrieveClusterId() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    if (clusterId != null) return;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    this.clusterId = this.registry.getClusterId();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    if (clusterId == null) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      clusterId = HConstants.CLUSTER_ID_DEFAULT;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      LOG.debug("clusterid came back null, using default " + clusterId);<a name="line.466"></a>
 <span class="sourceLineNo">467</span>    }<a name="line.467"></a>
 <span class="sourceLineNo">468</span>  }<a name="line.468"></a>
 <span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    pool.shutdown();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        pool.shutdownNow();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    } catch (InterruptedException e) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      pool.shutdownNow();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  /**<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @return The cluster registry implementation to use.<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   */<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  private Registry setupRegistry() throws IOException {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    return RegistryFactory.getRegistry(this);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>  /**<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * For tests only.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   */<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  @VisibleForTesting<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  RpcClient getRpcClient() {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return rpcClient;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * An identifier that will remain the same for a given connection.<a name="line.497"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public Configuration getConfiguration() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return this.conf;<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>  private void checkIfBaseNodeAvailable(ZooKeeperWatcher zkw)<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    throws MasterNotRunningException {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    String errorMsg;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    try {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (ZKUtil.checkExists(zkw, zkw.baseZNode) == -1) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        errorMsg = "The node " + zkw.baseZNode+" is not in ZooKeeper. "<a name="line.480"></a>
+<span class="sourceLineNo">481</span>          + "It should h

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.html
index e584a3d..0efe897 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.html
@@ -96,7 +96,7 @@
 <hr>
 <br>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
- class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.99">AsyncProcess</a>
+ class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.100">AsyncProcess</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">This class  allows a continuous flow of requests. It's written to be compatible with a
  synchronous caller such as HTable.
@@ -514,7 +514,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.100">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.101">LOG</a></pre>
 </li>
 </ul>
 <a name="COUNTER">
@@ -523,7 +523,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>COUNTER</h4>
-<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/AsyncProcess.html#line.101">COUNTER</a></pre>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/AsyncProcess.html#line.102">COUNTER</a></pre>
 </li>
 </ul>
 <a name="PRIMARY_CALL_TIMEOUT_KEY">
@@ -532,7 +532,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>PRIMARY_CALL_TIMEOUT_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.103">PRIMARY_CALL_TIMEOUT_KEY</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.104">PRIMARY_CALL_TIMEOUT_KEY</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.AsyncProcess.PRIMARY_CALL_TIMEOUT_KEY">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -542,7 +542,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>START_LOG_ERRORS_AFTER_COUNT_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.111">START_LOG_ERRORS_AFTER_COUNT_KEY</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.112">START_LOG_ERRORS_AFTER_COUNT_KEY</a></pre>
 <div class="block">Configure the number of failures after which the client will start logging. A few failures
  is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable
  heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at
@@ -556,7 +556,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_START_LOG_ERRORS_AFTER_COUNT</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.113">DEFAULT_START_LOG_ERRORS_AFTER_COUNT</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.114">DEFAULT_START_LOG_ERRORS_AFTER_COUNT</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.AsyncProcess.DEFAULT_START_LOG_ERRORS_AFTER_COUNT">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -566,7 +566,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>NO_REQS_RESULT</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.133">NO_REQS_RESULT</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.134">NO_REQS_RESULT</a></pre>
 <div class="block">Return value from a submit that didn't contain any requests.</div>
 </li>
 </ul>
@@ -576,7 +576,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>id</h4>
-<pre>protected final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.184">id</a></pre>
+<pre>protected final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.185">id</a></pre>
 </li>
 </ul>
 <a name="connection">
@@ -585,7 +585,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>connection</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.186">connection</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.187">connection</a></pre>
 </li>
 </ul>
 <a name="rpcCallerFactory">
@@ -594,7 +594,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcCallerFactory</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.187">rpcCallerFactory</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.188">rpcCallerFactory</a></pre>
 </li>
 </ul>
 <a name="rpcFactory">
@@ -603,7 +603,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcFactory</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcControllerFactory.html" title="class in org.apache.hadoop.hbase.ipc">RpcControllerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.188">rpcFactory</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcControllerFactory.html" title="class in org.apache.hadoop.hbase.ipc">RpcControllerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.189">rpcFactory</a></pre>
 </li>
 </ul>
 <a name="globalErrors">
@@ -612,7 +612,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>globalErrors</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.BatchErrors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.189">globalErrors</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.BatchErrors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.190">globalErrors</a></pre>
 </li>
 </ul>
 <a name="pool">
@@ -621,7 +621,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>pool</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.190">pool</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.191">pool</a></pre>
 </li>
 </ul>
 <a name="tasksInProgress">
@@ -630,7 +630,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tasksInProgress</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/AsyncProcess.html#line.192">tasksInProgress</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/AsyncProcess.html#line.193">tasksInProgress</a></pre>
 </li>
 </ul>
 <a name="taskCounterPerRegion">
@@ -639,7 +639,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>taskCounterPerRegion</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.193">taskCounterPerRegion</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.194">taskCounterPerRegion</a></pre>
 </li>
 </ul>
 <a name="taskCounterPerServer">
@@ -648,7 +648,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>taskCounterPerServer</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.195">taskCounterPerServer</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.196">taskCounterPerServer</a></pre>
 </li>
 </ul>
 <a name="startLogErrorsCnt">
@@ -657,7 +657,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>startLogErrorsCnt</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.199">startLogErrorsCnt</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.200">startLogErrorsCnt</a></pre>
 </li>
 </ul>
 <a name="maxTotalConcurrentTasks">
@@ -666,7 +666,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>maxTotalConcurrentTasks</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.204">maxTotalConcurrentTasks</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.205">maxTotalConcurrentTasks</a></pre>
 <div class="block">The number of tasks simultaneously executed on the cluster.</div>
 </li>
 </ul>
@@ -676,7 +676,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>maxConcurrentTasksPerRegion</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.212">maxConcurrentTasksPerRegion</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.213">maxConcurrentTasksPerRegion</a></pre>
 <div class="block">The number of tasks we run in parallel on a single region.
  With 1 (the default) , we ensure that the ordering of the queries is respected: we don't start
  a set of operations on a region before the previous one is done. As well, this limits
@@ -689,7 +689,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>maxConcurrentTasksPerServer</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.217">maxConcurrentTasksPerServer</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.218">maxConcurrentTasksPerServer</a></pre>
 <div class="block">The number of task simultaneously executed on a single region server.</div>
 </li>
 </ul>
@@ -699,7 +699,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>pause</h4>
-<pre>protected final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.218">pause</a></pre>
+<pre>protected final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.219">pause</a></pre>
 </li>
 </ul>
 <a name="numTries">
@@ -708,7 +708,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>numTries</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.219">numTries</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.220">numTries</a></pre>
 </li>
 </ul>
 <a name="serverTrackerTimeout">
@@ -717,7 +717,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>serverTrackerTimeout</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.220">serverTrackerTimeout</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.221">serverTrackerTimeout</a></pre>
 </li>
 </ul>
 <a name="timeout">
@@ -726,7 +726,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>timeout</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.221">timeout</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.222">timeout</a></pre>
 </li>
 </ul>
 <a name="primaryCallTimeoutMicroseconds">
@@ -735,7 +735,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>primaryCallTimeoutMicroseconds</h4>
-<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.222">primaryCallTimeoutMicroseconds</a></pre>
+<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.223">primaryCallTimeoutMicroseconds</a></pre>
 </li>
 </ul>
 </li>
@@ -752,7 +752,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncProcess</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.263">AsyncProcess</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;hc,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.264">AsyncProcess</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;hc,
             org.apache.hadoop.conf.Configuration&nbsp;conf,
             <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
             <a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerFactory</a>&nbsp;rpcCaller,
@@ -774,7 +774,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getPool</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.327">getPool</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.328">getPool</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</pre>
 <dl><dt><span class="strong">Returns:</span></dt><dd>pool if non null, otherwise returns this.pool if non null, otherwise throws
          RuntimeException</dd></dl>
 </li>
@@ -785,7 +785,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>submit</h4>
-<pre>public&nbsp;&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.341">submit</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.342">submit</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;rows,
                                                boolean&nbsp;atLeastOne,
                                                <a href="../../../../../org/apache/hadoop/hbase/client/coprocessor/Batch.Callback.html" title="interface in org.apache.hadoop.hbase.client.coprocessor">Batch.Callback</a>&lt;CResult&gt;&nbsp;callback,
@@ -803,7 +803,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>submit</h4>
-<pre>public&nbsp;&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.359">submit</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
+<pre>public&nbsp;&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.360">submit</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                                                <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;rows,
                                                boolean&nbsp;atLeastOne,
@@ -824,7 +824,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>submitMultiActions</h4>
-<pre>&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.433">submitMultiActions</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.434">submitMultiActions</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                            <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;retainedActions,
                                                            long&nbsp;nonceGroup,
                                                            <a href="../../../../../org/apache/hadoop/hbase/client/coprocessor/Batch.Callback.html" title="interface in org.apache.hadoop.hbase.client.coprocessor">Batch.Callback</a>&lt;CResult&gt;&nbsp;callback,
@@ -842,7 +842,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>addAction</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.461">addAction</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.462">addAction</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
              byte[]&nbsp;regionName,
              <a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action,
              <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;actionsByServer,
@@ -857,7 +857,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>canTakeOperation</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.483">canTakeOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&nbsp;loc,
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.484">canTakeOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&nbsp;loc,
                        <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;regionsIncluded,
                        <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;serversIncluded)</pre>
 <div class="block">Check if we should send new operations to this region or region server.
@@ -873,7 +873,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>submitAll</h4>
-<pre>public&nbsp;&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.546">submitAll</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.547">submitAll</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;rows,
                                                   <a href="../../../../../org/apache/hadoop/hbase/client/coprocessor/Batch.Callback.html" title="interface in org.apache.hadoop.hbase.client.coprocessor">Batch.Callback</a>&lt;CResult&gt;&nbsp;callback,
                                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;results)</pre>
@@ -887,7 +887,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>submitAll</h4>
-<pre>public&nbsp;&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.561">submitAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
+<pre>public&nbsp;&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.562">submitAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                                                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;rows,
                                                   <a href="../../../../../org/apache/hadoop/hbase/client/coprocessor/Batch.Callback.html" title="interface in org.apache.hadoop.hbase.client.coprocessor">Batch.Callback</a>&lt;CResult&gt;&nbsp;callback,
@@ -903,7 +903,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setNonce</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.586">setNonce</a>(<a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a>&nbsp;ng,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.587">setNonce</a>(<a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a>&nbsp;ng,
             <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;r,
             <a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action)</pre>
 </li>
@@ -914,7 +914,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createAsyncRequestFuture</h4>
-<pre>protected&nbsp;&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFutureImpl</a>&lt;CResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1672">createAsyncRequestFuture</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>protected&nbsp;&lt;CResult&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFutureImpl</a>&lt;CResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1673">createAsyncRequestFuture</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                                               <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;actions,
                                                                               long&nbsp;nonceGroup,
                                                                               <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
@@ -929,7 +929,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createCallable</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1683">createCallable</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1684">createCallable</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                                       <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                       <a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;multi)</pre>
 <div class="block">Create a callable. Isolated to be easily overridden in the tests.</div>
@@ -941,7 +941,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createCaller</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="interface in org.apache.hadoop.hbase.client">RpcRetryingCaller</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/MultiResponse.html" title="class in org.apache.hadoop.hbase.client">MultiResponse</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1692">createCaller</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;callable)</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="interface in org.apache.hadoop.hbase.client">RpcRetryingCaller</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/MultiResponse.html" title="class in org.apache.hadoop.hbase.client">MultiResponse</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1693">createCaller</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;callable)</pre>
 <div class="block">Create a caller. Isolated to be easily overridden in the tests.</div>
 </li>
 </ul>
@@ -951,7 +951,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>waitUntilDone</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1698">waitUntilDone</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1699">waitUntilDone</a>()
              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></code></dd></dl>
@@ -963,7 +963,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForMaximumCurrentTasks</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1703">waitForMaximumCurrentTasks</a>(int&nbsp;max)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1704">waitForMaximumCurrentTasks</a>(int&nbsp;max)
                                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <div class="block">Wait until the async does not have more than max tasks in progress.</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -976,7 +976,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hasError</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1733">hasError</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1734">hasError</a>()</pre>
 <div class="block">Only used w/useGlobalErrors ctor argument, for HTable backward compat.</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>Whether there were any errors in any request since the last time
           <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.html#waitForAllPreviousOpsAndReset(java.util.List)"><code>waitForAllPreviousOpsAndReset(List)</code></a> was called, or AP was created.</dd></dl>
@@ -988,7 +988,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForAllPreviousOpsAndReset</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.html" title="class in org.apache.hadoop.hbase.client">RetriesExhaustedWithDetailsException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1746">waitForAllPreviousOpsAndReset</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;failedRows)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.html" title="class in org.apache.hadoop.hbase.client">RetriesExhaustedWithDetailsException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1747">waitForAllPreviousOpsAndReset</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;failedRows)
                                                                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <div class="block">Only used w/useGlobalErrors ctor argument, for HTable backward compat.
  Waits for all previous operations to finish, and returns errors and (optionally)
@@ -1007,7 +1007,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>incTaskCounters</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1763">incTaskCounters</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;regions,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1764">incTaskCounters</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;regions,
                    <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <div class="block">increment the tasks counters for a given set of regions. MT safe.</div>
 </li>
@@ -1018,7 +1018,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>decTaskCounters</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1789">decTaskCounters</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;regions,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1790">decTaskCounters</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;regions,
                    <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <div class="block">Decrements the counters for a given region and the region server. MT Safe.</div>
 </li>
@@ -1029,7 +1029,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createServerErrorTracker</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.ServerErrorTracker</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1809">createServerErrorTracker</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.ServerErrorTracker</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1810">createServerErrorTracker</a>()</pre>
 <div class="block">Creates the server error tracker to use inside process.
  Currently, to preserve the main assumption about current retries, and to work well with
  the retry-limit-based calculation, the calculation is local per Process object.
@@ -1043,7 +1043,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isReplicaGet</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1814">isReplicaGet</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1815">isReplicaGet</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html
index 6c0f82a..037bdc8 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1035">ConnectionImplementation.MasterServiceState</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.990">ConnectionImplementation.MasterServiceState</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">State of the MasterService connection/setup.</div>
 </li>
@@ -208,7 +208,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>connection</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1036">connection</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.991">connection</a></pre>
 </li>
 </ul>
 <a name="stub">
@@ -217,7 +217,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>stub</h4>
-<pre>org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1037">stub</a></pre>
+<pre>org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.992">stub</a></pre>
 </li>
 </ul>
 <a name="userCount">
@@ -226,7 +226,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>userCount</h4>
-<pre>int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1038">userCount</a></pre>
+<pre>int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.993">userCount</a></pre>
 </li>
 </ul>
 </li>
@@ -243,7 +243,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ConnectionImplementation.MasterServiceState</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1040">ConnectionImplementation.MasterServiceState</a>(<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;connection)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.995">ConnectionImplementation.MasterServiceState</a>(<a href="../../../../../org/apache/hadoop/hbase/client/HConnection.html" title="interface in org.apache.hadoop.hbase.client">HConnection</a>&nbsp;connection)</pre>
 </li>
 </ul>
 </li>
@@ -260,7 +260,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1046">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1001">toString</a>()</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -273,7 +273,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getStub</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1050">getStub</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1005">getStub</a>()</pre>
 </li>
 </ul>
 <a name="clearStub()">
@@ -282,7 +282,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>clearStub</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1054">clearStub</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1009">clearStub</a>()</pre>
 </li>
 </ul>
 <a name="isMasterRunning()">
@@ -291,7 +291,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isMasterRunning</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1058">isMasterRunning</a>()
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html#line.1013">isMasterRunning</a>()
                   throws com.google.protobuf.ServiceException</pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code>com.google.protobuf.ServiceException</code></dd></dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html
index 7159cc6..4e4b149 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html
@@ -104,7 +104,7 @@
 </dl>
 <hr>
 <br>
-<pre> class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1261">ConnectionImplementation.MasterServiceStubMaker</a>
+<pre> class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1216">ConnectionImplementation.MasterServiceStubMaker</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.StubMaker</a></pre>
 <div class="block">Class to make a MasterServiceStubMaker stub.</div>
 </li>
@@ -213,7 +213,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stub</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1262">stub</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1217">stub</a></pre>
 </li>
 </ul>
 </li>
@@ -230,7 +230,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ConnectionImplementation.MasterServiceStubMaker</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1261">ConnectionImplementation.MasterServiceStubMaker</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1216">ConnectionImplementation.MasterServiceStubMaker</a>()</pre>
 </li>
 </ul>
 </li>
@@ -247,7 +247,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 <ul class="blockList">
 <li class="blockList">
 <h4>getServiceName</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1264">getServiceName</a>()</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1219">getServiceName</a>()</pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#getServiceName()">ConnectionImplementation.StubMaker</a></code></strong></div>
 <div class="block">Returns the name of the service stub being created.</div>
 <dl>
@@ -262,7 +262,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 <ul class="blockList">
 <li class="blockList">
 <h4>makeStub</h4>
-<pre>org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1269">makeStub</a>()
+<pre>org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1224">makeStub</a>()
                                                                                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#makeStub()">ConnectionImplementation.StubMaker</a></code></strong></div>
 <div class="block">Create a stub against the master.  Retry if necessary.</div>
@@ -281,7 +281,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 <ul class="blockList">
 <li class="blockList">
 <h4>makeStub</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1274">makeStub</a>(com.google.protobuf.BlockingRpcChannel&nbsp;channel)</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1229">makeStub</a>(com.google.protobuf.BlockingRpcChannel&nbsp;channel)</pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#makeStub(com.google.protobuf.BlockingRpcChannel)">ConnectionImplementation.StubMaker</a></code></strong></div>
 <div class="block">Make stub and cache it internal so can be used later doing the isMasterRunning call.</div>
 <dl>
@@ -296,7 +296,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isMasterRunning</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1280">isMasterRunning</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html#line.1235">isMasterRunning</a>()
                         throws com.google.protobuf.ServiceException</pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#isMasterRunning()">ConnectionImplementation.StubMaker</a></code></strong></div>
 <div class="block">Once setup, check it works by doing isMasterRunning check.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html
index d4b6929..13a3a78 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1066">ConnectionImplementation.NoNonceGenerator</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1021">ConnectionImplementation.NoNonceGenerator</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a></pre>
 <div class="block">Dummy nonce generator for disabled nonces.</div>
@@ -178,7 +178,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ConnectionImplementation.NoNonceGenerator</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html#line.1066">ConnectionImplementation.NoNonceGenerator</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html#line.1021">ConnectionImplementation.NoNonceGenerator</a>()</pre>
 </li>
 </ul>
 </li>
@@ -195,7 +195,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGroup</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html#line.1068">getNonceGroup</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html#line.1023">getNonceGroup</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html#getNonceGroup()">getNonceGroup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a></code></dd>
@@ -208,7 +208,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator
 <ul class="blockListLast">
 <li class="blockList">
 <h4>newNonce</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html#line.1072">newNonce</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html#line.1027">newNonce</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html#newNonce()">newNonce</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html
index 58bfa54..bd8cde0 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1151">ConnectionImplementation.ServerErrorTracker.ServerErrors</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1106">ConnectionImplementation.ServerErrorTracker.ServerErrors</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">The record of errors for a server.</div>
 </li>
@@ -194,7 +194,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>retries</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html#line.1152">retries</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html#line.1107">retries</a></pre>
 </li>
 </ul>
 </li>
@@ -211,7 +211,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ConnectionImplementation.ServerErrorTracker.ServerErrors</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html#line.1151">ConnectionImplementation.ServerErrorTracker.ServerErrors</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html#line.1106">ConnectionImplementation.ServerErrorTracker.ServerErrors</a>()</pre>
 </li>
 </ul>
 </li>
@@ -228,7 +228,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html#line.1154">getCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html#line.1109">getCount</a>()</pre>
 </li>
 </ul>
 <a name="addError()">
@@ -237,7 +237,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>addError</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html#line.1158">addError</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html#line.1113">addError</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html
index 901fe12..5b047a8 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1080">ConnectionImplementation.ServerErrorTracker</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1035">ConnectionImplementation.ServerErrorTracker</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">The record of errors for servers.</div>
 </li>
@@ -243,7 +243,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>errorsByServer</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.ServerErrorTracker.ServerErrors</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1082">errorsByServer</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.ServerErrorTracker.ServerErrors</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1037">errorsByServer</a></pre>
 </li>
 </ul>
 <a name="canRetryUntil">
@@ -252,7 +252,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>canRetryUntil</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1084">canRetryUntil</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1039">canRetryUntil</a></pre>
 </li>
 </ul>
 <a name="maxTries">
@@ -261,7 +261,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>maxTries</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1085">maxTries</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1040">maxTries</a></pre>
 </li>
 </ul>
 <a name="startTrackingTime">
@@ -270,7 +270,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>startTrackingTime</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1086">startTrackingTime</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1041">startTrackingTime</a></pre>
 </li>
 </ul>
 </li>
@@ -287,7 +287,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ConnectionImplementation.ServerErrorTracker</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1093">ConnectionImplementation.ServerErrorTracker</a>(long&nbsp;timeout,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1048">ConnectionImplementation.ServerErrorTracker</a>(long&nbsp;timeout,
                                            int&nbsp;maxTries)</pre>
 <div class="block">Constructor</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>timeout</code> - how long to wait before timeout, in unit of millisecond</dd><dd><code>maxTries</code> - how many times to try</dd></dl>
@@ -307,7 +307,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>canTryMore</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1103">canTryMore</a>(int&nbsp;numAttempt)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1058">canTryMore</a>(int&nbsp;numAttempt)</pre>
 <div class="block">We stop to retry when we have exhausted BOTH the number of tries and the time allocated.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>numAttempt</code> - how many times we have tried by now</dd></dl>
 </li>
@@ -318,7 +318,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>calculateBackoffTime</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1116">calculateBackoffTime</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1071">calculateBackoffTime</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                         long&nbsp;basePause)</pre>
 <div class="block">Calculates the back-off time for a retrying request to a particular server.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>server</code> - The server in question.</dd><dd><code>basePause</code> - The default hci pause.</dd>
@@ -331,7 +331,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>reportServerError</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1132">reportServerError</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1087">reportServerError</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server)</pre>
 <div class="block">Reports that there was an error on the server to do whatever bean-counting necessary.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>server</code> - The server in question.</dd></dl>
 </li>
@@ -342,7 +342,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getStartTrackingTime</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1144">getStartTrackingTime</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html#line.1099">getStartTrackingTime</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html
index 0af42ec..3c3e484 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1169">ConnectionImplementation.StubMaker</a>
+<pre>abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1124">ConnectionImplementation.StubMaker</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Makes a client-side stub for master services. Sub-class to specialize.
  Depends on hosting class so not static.  Exists so we avoid duplicating a bunch of code
@@ -201,7 +201,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ConnectionImplementation.StubMaker</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1169">ConnectionImplementation.StubMaker</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1124">ConnectionImplementation.StubMaker</a>()</pre>
 </li>
 </ul>
 </li>
@@ -218,7 +218,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getServiceName</h4>
-<pre>protected abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1173">getServiceName</a>()</pre>
+<pre>protected abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1128">getServiceName</a>()</pre>
 <div class="block">Returns the name of the service stub being created.</div>
 </li>
 </ul>
@@ -228,7 +228,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>makeStub</h4>
-<pre>protected abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1178">makeStub</a>(com.google.protobuf.BlockingRpcChannel&nbsp;channel)</pre>
+<pre>protected abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1133">makeStub</a>(com.google.protobuf.BlockingRpcChannel&nbsp;channel)</pre>
 <div class="block">Make stub and cache it internal so can be used later doing the isMasterRunning call.</div>
 </li>
 </ul>
@@ -238,7 +238,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isMasterRunning</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1183">isMasterRunning</a>()
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1138">isMasterRunning</a>()
                                  throws com.google.protobuf.ServiceException</pre>
 <div class="block">Once setup, check it works by doing isMasterRunning check.</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -251,7 +251,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>makeStubNoRetries</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1190">makeStubNoRetries</a>()
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1145">makeStubNoRetries</a>()
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                  org.apache.zookeeper.KeeperException,
                                  com.google.protobuf.ServiceException</pre>
@@ -270,7 +270,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>makeStub</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1234">makeStub</a>()
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html#line.1189">makeStub</a>()
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Create a stub against the master.  Retry if necessary.</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>A stub to do <code>intf</code> against the master</dd>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html
index bf27873..e4df7cc 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html
@@ -75,2529 +75,2534 @@
 <span class="sourceLineNo">067</span><a name="line.67"></a>
 <span class="sourceLineNo">068</span>import org.apache.commons.logging.Log;<a name="line.68"></a>
 <span class="sourceLineNo">069</span>import org.apache.commons.logging.LogFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.conf.Configuration;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HConstants;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.Server;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.TableName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.User;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.io.BytesWritable;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.io.IntWritable;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.io.Writable;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.io.WritableUtils;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.util.StringUtils;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.htrace.TraceInfo;<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import com.google.protobuf.BlockingService;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import com.google.protobuf.CodedInputStream;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import com.google.protobuf.Message;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import com.google.protobuf.ServiceException;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import com.google.protobuf.TextFormat;<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>/**<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * An RPC server that hosts protobuf described Services.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> *<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.143"></a>
-<span class="sourceLineNo">144</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * and loops till done.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> *<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.151"></a>
-<span class="sourceLineNo">152</span> * and keep taking while the server is up.<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *<a name="line.153"></a>
-<span class="sourceLineNo">154</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * queue for Responder to pull from and return result to client.<a name="line.155"></a>
-<span class="sourceLineNo">156</span> *<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * @see RpcClientImpl<a name="line.157"></a>
-<span class="sourceLineNo">158</span> */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.159"></a>
-<span class="sourceLineNo">160</span>@InterfaceStability.Evolving<a name="line.160"></a>
-<span class="sourceLineNo">161</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      = new CallQueueTooBigException();<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final boolean authorize;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private boolean isSecurityEnabled;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final byte CURRENT_VERSION = 0;<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>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * How many calls/handler are allowed in the queue.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * The maximum size that we can hold in the RPC queue<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private final IPCUtil ipcUtil;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    Server.class.getName());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected ServiceAuthorizationManager authManager;<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * after the call returns.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  protected final InetSocketAddress bindAddress;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected int port;                             // port we listen on<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private int readThreads;                        // number of read threads<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.210"></a>
-<span class="sourceLineNo">211</span>                                                  // which a client may be<a name="line.211"></a>
-<span class="sourceLineNo">212</span>                                                  // disconnected<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.213"></a>
-<span class="sourceLineNo">214</span>                                                  // connections after which we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>                                                  // will start cleaning up idle<a name="line.215"></a>
-<span class="sourceLineNo">216</span>                                                  // connections<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.217"></a>
-<span class="sourceLineNo">218</span>                                                  // connections to nuke<a name="line.218"></a>
-<span class="sourceLineNo">219</span>                                                  // during a cleanup<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected MetricsHBaseServer metrics;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  protected final Configuration conf;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private int maxQueueSize;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  protected int socketSendBufferSize;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  protected final long purgeTimeout;    // in milliseconds<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  volatile boolean running = true;<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  /**<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * for business by the call to {@link #start()}.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  volatile boolean started = false;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final Counter callQueueSize = new Counter();<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  //maintain a list<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  //of client connections<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  private Listener listener = null;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected Responder responder = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  protected int numConnections = 0;<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /** Default value for above params */<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  private final int warnResponseTime;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  private final int warnResponseSize;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  private final Server server;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private final RpcScheduler scheduler;<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private UserProvider userProvider;<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>  private final BoundedByteBufferPool reservoir;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * the result.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  class Call implements RpcCallContext {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    protected int id;                             // the client's call id<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    protected BlockingService service;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    protected MethodDescriptor md;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    protected RequestHeader header;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    protected Message param;                      // the parameter passed<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // Optional cell data passed outside of protobufs.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    protected CellScanner cellScanner;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    protected Connection connection;              // connection to client<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    protected long timestamp;      // the time received when response is null<a name="line.295"></a>
-<span class="sourceLineNo">296</span>                                   // the time served when response is not null<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>     * Chain of buffers to send as response.<a name="line.298"></a>
-<span class="sourceLineNo">299</span>     */<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    protected BufferChain response;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    protected Responder responder;<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>    protected long size;                          // size of current call<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    protected boolean isError;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    protected TraceInfo tinfo;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    private ByteBuffer cellBlock = null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>    private User user;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    private InetAddress remoteAddress;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    private RpcCallback callback;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private long responseCellSize = 0;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    private long responseBlockSize = 0;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    private boolean retryImmediatelySupported;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.319"></a>
-<span class="sourceLineNo">320</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      this.id = id;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      this.service = service;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      this.md = md;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      this.header = header;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      this.param = param;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      this.cellScanner = cellScanner;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      this.connection = connection;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      this.timestamp = System.currentTimeMillis();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      this.response = null;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      this.responder = responder;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      this.isError = false;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      this.size = size;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      this.tinfo = tinfo;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      this.remoteAddress = remoteAddress;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      this.retryImmediatelySupported =<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          connection == null? null: connection.retryImmediatelySupported;<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.341"></a>
-<span class="sourceLineNo">342</span>     * cleanup.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>     */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    void done() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        // Return buffer to reservoir now we are done with it.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        reservoir.putBuffer(this.cellBlock);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        this.cellBlock = null;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    public String toString() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      return toShortString() + " param: " +<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        " connection: " + connection.toString();<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>    protected RequestHeader getHeader() {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return this.header;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    /*<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     * the payload of a command<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    String toShortString() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      String serviceName = this.connection.service != null ?<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.373"></a>
-<span class="sourceLineNo">374</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      String serviceName = this.connection.service != null ?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      return serviceName + "." + methodName;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      this.response = new BufferChain(response);<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>    protected synchronized void setResponse(Object m, final CellScanner cells,<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        Throwable t, String errorMsg) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      if (this.isError) return;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      if (t != null) this.isError = true;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      BufferChain bc = null;<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      try {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        ResponseHeader.Builder headerBuilder = ResponseHeader.newBuilder();<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // Presume it a pb Message.  Could be null.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        Message result = (Message)m;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        // Call id.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        headerBuilder.setCallId(this.id);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        if (t != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          ExceptionResponse.Builder exceptionBuilder = ExceptionResponse.newBuilder();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          exceptionBuilder.setExceptionClassName(t.getClass().getName());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          exceptionBuilder.setStackTrace(errorMsg);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          exceptionBuilder.setDoNotRetry(t instanceof DoNotRetryIOException);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          if (t instanceof RegionMovedException) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>            // Special casing for this exception.  This is only one carrying a payload.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            // Do this instead of build a generic system for allowing exceptions carry<a name="line.408"></a>
-<span class="sourceLineNo">409</span>            // any kind of payload.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            RegionMovedException rme = (RegionMovedException)t;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>            exceptionBuilder.setHostname(rme.getHostname());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            exceptionBuilder.setPort(rme.getPort());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>          }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          // Set the exception as the result of the method invocation.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          headerBuilder.setException(exceptionBuilder.build());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        // Pass reservoir to buildCellBlock. Keep reference to returne so can add it back to the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        // reservoir when finished. This is hacky and the hack is not contained but benefits are<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // high when we can avoid a big buffer allocation on each rpc.<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        this.cellBlock = ipcUtil.buildCellBlock(this.connection.codec,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          this.connection.compressionCodec, cells, reservoir);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        if (this.cellBlock != null) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          CellBlockMeta.Builder cellBlockBuilder = CellBlockMeta.newBuilder();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          // Presumes the cellBlock bytebuffer has been flipped so limit has total size in it.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          cellBlockBuilder.setLength(this.cellBlock.limit());<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          headerBuilder.setCellBlockMeta(cellBlockBuilder.build());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        Message header = headerBuilder.build();<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>        // Organize the response as a set of bytebuffers rather than collect it all together inside<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        // one big byte array; save on allocations.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        ByteBuffer bbHeader = IPCUtil.getDelimitedMessageAsByteBuffer(header);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        ByteBuffer bbResult = IPCUtil.getDelimitedMessageAsByteBuffer(result);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        int totalSize = bbHeader.capacity() + (bbResult == null? 0: bbResult.limit()) +<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          (this.cellBlock == null? 0: this.cellBlock.limit());<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        ByteBuffer bbTotalSize = ByteBuffer.wrap(Bytes.toBytes(totalSize));<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        bc = new BufferChain(bbTotalSize, bbHeader, bbResult, this.cellBlock);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (connection.useWrap) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          bc = wrapWithSasl(bc);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      } catch (IOException e) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        LOG.warn("Exception while creating response " + e);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      this.response = bc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      // Once a response message is created and set to this.response, this Call can be treated as<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      // done. The Responder thread will do the n/w write of this message back to client.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      if (this.callback != null) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        try {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          this.callback.run();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        } catch (Exception e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          // Don't allow any exception here to kill this handler thread.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          LOG.warn("Exception while running the Rpc Callback.", e);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    private BufferChain wrapWithSasl(BufferChain bc)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      if (!this.connection.useSasl) return bc;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      // Looks like no way around this; saslserver wants a byte array.  I have to make it one.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      // THIS IS A BIG UGLY COPY.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      byte [] responseBytes = bc.getBytes();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      byte [] token;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      // synchronization may be needed since there can be multiple Handler<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      // threads using saslServer to wrap responses.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      synchronized (connection.saslServer) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        token = connection.saslServer.wrap(responseBytes, 0, responseBytes.length);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      if (LOG.isTraceEnabled()) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        LOG.trace("Adding saslServer wrapped token of size " + token.length<a name="line.470"></a>
-<span class="sourceLineNo">471</span>            + " as call response.");<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>      ByteBuffer bbTokenLength = ByteBuffer.wrap(Bytes.toBytes(token.length));<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      ByteBuffer bbTokenBytes = ByteBuffer.wrap(token);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      return new BufferChain(bbTokenLength, bbTokenBytes);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    }<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>    @Override<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    public boolean isClientCellBlockSupported() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return this.connection != null &amp;&amp; this.connection.codec != null;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    @Override<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    public long disconnectSince() {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      if (!connection.channel.isOpen()) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        return System.currentTimeMillis() - timestamp;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      } else {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        return -1L;<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><a name="line.492"></a>
-<span class="sourceLineNo">493</span>    public long getSize() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      return this.size;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>    public long getResponseCellSize() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return responseCellSize;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    public void incrementResponseCellSize(long cellSize) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      responseCellSize += cellSize;<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>    @Override<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    public long getResponseBlockSize() {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      return responseBlockSize;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>    @Override<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    public void incrementResponseBlockSize(long blockSize) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      responseBlockSize += blockSize;<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>    public synchronized void sendResponseIfReady() throws IOException {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.responder.doRespond(this);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public UserGroupInformation getRemoteUser() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      return connection.ugi;<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    }<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>    @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    public User getRequestUser() {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      return user;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    @Override<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    public String getRequestUserName() {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      User user = getRequestUser();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      return user == null? null: user.getShortName();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>    @Override<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    public InetAddress getRemoteAddress() {<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      return remoteAddress;<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>    @Override<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    public VersionInfo getClientVersionInfo() {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      return connection.getVersionInfo();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>    @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    public synchronized void setCallBack(RpcCallback callback) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.callback = callback;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    @Override<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    public boolean isRetryImmediatelySupported() {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      return retryImmediatelySupported;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<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>  /** Listens on the socket. Creates jobs for the handler threads*/<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private class Listener extends Thread {<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    private ServerSocketChannel acceptChannel = null; //the accept channel<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private Selector selector = null; //the selector that we use for the server<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    private Reader[] readers = null;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    private int currentReader = 0;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    private Random rand = new Random();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    private long lastCleanupRunTime = 0; //the last time when a cleanup connec-<a name="line.563"></a>
-<span class="sourceLineNo">564</span>                                         //-tion (for idle connections) ran<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    private long cleanupInterval = 10000; //the minimum interval between<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                                          //two cleanup runs<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    private int backlogLength;<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>    private ExecutorService readPool;<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>    public Listener(final String name) throws IOException {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      super(name);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      backlogLength = conf.getInt("hbase.ipc.server.listen.queue.size", 128);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      // Create a new server socket and set to non blocking mode<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      acceptChannel = ServerSocketChannel.open();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      acceptChannel.configureBlocking(false);<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Bind the server socket to the binding addrees (can be different from the default interface)<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      bind(acceptChannel.socket(), bindAddress, backlogLength);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      port = acceptChannel.socket().getLocalPort(); //Could be an ephemeral port<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      address = (InetSocketAddress)acceptChannel.socket().getLocalSocketAddress();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      // create a selector;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      selector= Selector.open();<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>      readers = new Reader[readThreads];<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      readPool = Executors.newFixedThreadPool(readThreads,<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        new ThreadFactoryBuilder().setNameFormat(<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          "RpcServer.reader=%d,bindAddress=" + bindAddress.getHostName() +<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          ",port=" + port).setDaemon(true).build());<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      for (int i = 0; i &lt; readThreads; ++i) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        Reader reader = new Reader();<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        readers[i] = reader;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        readPool.execute(reader);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      LOG.info(getName() + ": started " + readThreads + " reader(s) listening on port=" + port);<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>      // Register accepts on the server socket with the selector.<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      acceptChannel.register(selector, SelectionKey.OP_ACCEPT);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.setName("RpcServer.listener,port=" + port);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      this.setDaemon(true);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.CallQueueTooBigException;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.conf.Configuration;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HConstants;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.Server;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.TableName;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.User;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.io.BytesWritable;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.io.IntWritable;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.io.Writable;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.io.WritableUtils;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.util.StringUtils;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.htrace.TraceInfo;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import com.google.protobuf.BlockingService;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import com.google.protobuf.CodedInputStream;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import com.google.protobuf.Message;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import com.google.protobuf.ServiceException;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import com.google.protobuf.TextFormat;<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>/**<a name="line.140"></a>
+<span class="sourceLineNo">141</span> * An RPC server that hosts protobuf described Services.<a name="line.141"></a>
+<span class="sourceLineNo">142</span> *<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.143"></a>
+<span class="sourceLineNo">144</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.146"></a>
+<span class="sourceLineNo">147</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * and loops till done.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> *<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * and keep taking while the server is up.<a name="line.153"></a>
+<span class="sourceLineNo">154</span> *<a name="line.154"></a>
+<span class="sourceLineNo">155</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.155"></a>
+<span class="sourceLineNo">156</span> * queue for Responder to pull from and return result to client.<a name="line.156"></a>
+<span class="sourceLineNo">157</span> *<a name="line.157"></a>
+<span class="sourceLineNo">158</span> * @see RpcClientImpl<a name="line.158"></a>
+<span class="sourceLineNo">159</span> */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.160"></a>
+<span class="sourceLineNo">161</span>@InterfaceStability.Evolving<a name="line.161"></a>
+<span class="sourceLineNo">162</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      = new CallQueueTooBigException();<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  private final boolean authorize;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private boolean isSecurityEnabled;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public static final byte CURRENT_VERSION = 0;<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.176"></a>
+<span class="sourceLineNo">177</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * How many calls/handler are allowed in the queue.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * The maximum size that we can hold in the RPC queue<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final IPCUtil ipcUtil;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    Server.class.getName());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  protected ServiceAuthorizationManager authManager;<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * after the call returns.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  protected final InetSocketAddress bindAddress;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  protected int port;                             // port we listen on<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private int readThreads;                        // number of read threads<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                                  // which a client may be<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                                  // disconnected<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                                  // connections after which we<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                                  // will start cleaning up idle<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                                  // connections<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                                  // connections to nuke<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                                  // during a cleanup<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  protected MetricsHBaseServer metrics;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  protected final Configuration conf;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  private int maxQueueSize;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  protected int socketSendBufferSize;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  protected final long purgeTimeout;    // in milliseconds<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>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  volatile boolean running = true;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  /**<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * for business by the call to {@link #start()}.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   */<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  volatile boolean started = false;<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  /**<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  protected final Counter callQueueSize = new Counter();<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  //maintain a list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  //of client connections<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  private Listener listener = null;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  protected Responder responder = null;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  protected int numConnections = 0;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>  /** Default value for above params */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  private final int warnResponseTime;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  private final int warnResponseSize;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  private final Server server;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  private final RpcScheduler scheduler;<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>  private UserProvider userProvider;<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>  private final BoundedByteBufferPool reservoir;<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * the result.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  class Call implements RpcCallContext {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    protected int id;                             // the client's call id<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    protected BlockingService service;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    protected MethodDescriptor md;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    protected RequestHeader header;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    protected Message param;                      // the parameter passed<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    // Optional cell data passed outside of protobufs.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    protected CellScanner cellScanner;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    protected Connection connection;              // connection to client<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    protected long timestamp;      // the time received when response is null<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                   // the time served when response is not null<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span>     * Chain of buffers to send as response.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>     */<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    protected BufferChain response;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    protected Responder responder;<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    protected long size;                          // size of current call<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    protected boolean isError;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    protected TraceInfo tinfo;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    private ByteBuffer cellBlock = null;<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    private User user;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    private InetAddress remoteAddress;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    private RpcCallback callback;<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    private long responseCellSize = 0;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    private long responseBlockSize = 0;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    private boolean retryImmediatelySupported;<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      this.id = id;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      this.service = service;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      this.md = md;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      this.header = header;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      this.param = param;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      this.cellScanner = cellScanner;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      this.connection = connection;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      this.timestamp = System.currentTimeMillis();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      this.response = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      this.responder = responder;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      this.isError = false;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      this.size = size;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      this.tinfo = tinfo;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      this.remoteAddress = remoteAddress;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      this.retryImmediatelySupported =<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          connection == null? null: connection.retryImmediatelySupported;<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>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.342"></a>
+<span class="sourceLineNo">343</span>     * cleanup.<a name="line.343"></a>
+<span class="sourceLineNo">344</span>     */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    void done() {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        // Return buffer to reservoir now we are done with it.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        reservoir.putBuffer(this.cellBlock);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        this.cellBlock = null;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    @Override<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    public String toString() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      return toShortString() + " param: " +<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        " connection: " + connection.toString();<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    protected RequestHeader getHeader() {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      return this.header;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>    /*<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * the payload of a command<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    String toShortString() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      String serviceName = this.connection.service != null ?<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.374"></a>
+<span class="sourceLineNo">375</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.375"></a>
+<span class="sourceLineNo">376</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.376"></a>
+<span class="sourceLineNo">377</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      String serviceName = this.connection.service != null ?<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return serviceName + "." + methodName;<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>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name=

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html
index bf27873..e4df7cc 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html
@@ -75,2529 +75,2534 @@
 <span class="sourceLineNo">067</span><a name="line.67"></a>
 <span class="sourceLineNo">068</span>import org.apache.commons.logging.Log;<a name="line.68"></a>
 <span class="sourceLineNo">069</span>import org.apache.commons.logging.LogFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.conf.Configuration;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HConstants;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.Server;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.TableName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.User;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.io.BytesWritable;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.io.IntWritable;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.io.Writable;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.io.WritableUtils;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.util.StringUtils;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.htrace.TraceInfo;<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import com.google.protobuf.BlockingService;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import com.google.protobuf.CodedInputStream;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import com.google.protobuf.Message;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import com.google.protobuf.ServiceException;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import com.google.protobuf.TextFormat;<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>/**<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * An RPC server that hosts protobuf described Services.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> *<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.143"></a>
-<span class="sourceLineNo">144</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * and loops till done.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> *<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.151"></a>
-<span class="sourceLineNo">152</span> * and keep taking while the server is up.<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *<a name="line.153"></a>
-<span class="sourceLineNo">154</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * queue for Responder to pull from and return result to client.<a name="line.155"></a>
-<span class="sourceLineNo">156</span> *<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * @see RpcClientImpl<a name="line.157"></a>
-<span class="sourceLineNo">158</span> */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.159"></a>
-<span class="sourceLineNo">160</span>@InterfaceStability.Evolving<a name="line.160"></a>
-<span class="sourceLineNo">161</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      = new CallQueueTooBigException();<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final boolean authorize;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private boolean isSecurityEnabled;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final byte CURRENT_VERSION = 0;<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>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * How many calls/handler are allowed in the queue.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * The maximum size that we can hold in the RPC queue<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private final IPCUtil ipcUtil;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    Server.class.getName());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected ServiceAuthorizationManager authManager;<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * after the call returns.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  protected final InetSocketAddress bindAddress;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected int port;                             // port we listen on<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private int readThreads;                        // number of read threads<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.210"></a>
-<span class="sourceLineNo">211</span>                                                  // which a client may be<a name="line.211"></a>
-<span class="sourceLineNo">212</span>                                                  // disconnected<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.213"></a>
-<span class="sourceLineNo">214</span>                                                  // connections after which we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>                                                  // will start cleaning up idle<a name="line.215"></a>
-<span class="sourceLineNo">216</span>                                                  // connections<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.217"></a>
-<span class="sourceLineNo">218</span>                                                  // connections to nuke<a name="line.218"></a>
-<span class="sourceLineNo">219</span>                                                  // during a cleanup<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected MetricsHBaseServer metrics;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  protected final Configuration conf;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private int maxQueueSize;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  protected int socketSendBufferSize;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  protected final long purgeTimeout;    // in milliseconds<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  volatile boolean running = true;<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  /**<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * for business by the call to {@link #start()}.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  volatile boolean started = false;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final Counter callQueueSize = new Counter();<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  //maintain a list<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  //of client connections<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  private Listener listener = null;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected Responder responder = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  protected int numConnections = 0;<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /** Default value for above params */<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  private final int warnResponseTime;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  private final int warnResponseSize;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  private final Server server;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private final RpcScheduler scheduler;<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private UserProvider userProvider;<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>  private final BoundedByteBufferPool reservoir;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * the result.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  class Call implements RpcCallContext {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    protected int id;                             // the client's call id<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    protected BlockingService service;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    protected MethodDescriptor md;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    protected RequestHeader header;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    protected Message param;                      // the parameter passed<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // Optional cell data passed outside of protobufs.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    protected CellScanner cellScanner;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    protected Connection connection;              // connection to client<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    protected long timestamp;      // the time received when response is null<a name="line.295"></a>
-<span class="sourceLineNo">296</span>                                   // the time served when response is not null<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>     * Chain of buffers to send as response.<a name="line.298"></a>
-<span class="sourceLineNo">299</span>     */<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    protected BufferChain response;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    protected Responder responder;<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>    protected long size;                          // size of current call<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    protected boolean isError;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    protected TraceInfo tinfo;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    private ByteBuffer cellBlock = null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>    private User user;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    private InetAddress remoteAddress;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    private RpcCallback callback;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private long responseCellSize = 0;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    private long responseBlockSize = 0;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    private boolean retryImmediatelySupported;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.319"></a>
-<span class="sourceLineNo">320</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      this.id = id;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      this.service = service;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      this.md = md;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      this.header = header;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      this.param = param;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      this.cellScanner = cellScanner;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      this.connection = connection;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      this.timestamp = System.currentTimeMillis();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      this.response = null;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      this.responder = responder;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      this.isError = false;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      this.size = size;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      this.tinfo = tinfo;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      this.remoteAddress = remoteAddress;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      this.retryImmediatelySupported =<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          connection == null? null: connection.retryImmediatelySupported;<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.341"></a>
-<span class="sourceLineNo">342</span>     * cleanup.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>     */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    void done() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        // Return buffer to reservoir now we are done with it.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        reservoir.putBuffer(this.cellBlock);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        this.cellBlock = null;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    public String toString() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      return toShortString() + " param: " +<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        " connection: " + connection.toString();<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>    protected RequestHeader getHeader() {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return this.header;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    /*<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     * the payload of a command<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    String toShortString() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      String serviceName = this.connection.service != null ?<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.373"></a>
-<span class="sourceLineNo">374</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      String serviceName = this.connection.service != null ?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      return serviceName + "." + methodName;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      this.response = new BufferChain(response);<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>    protected synchronized void setResponse(Object m, final CellScanner cells,<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        Throwable t, String errorMsg) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      if (this.isError) return;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      if (t != null) this.isError = true;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      BufferChain bc = null;<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      try {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        ResponseHeader.Builder headerBuilder = ResponseHeader.newBuilder();<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // Presume it a pb Message.  Could be null.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        Message result = (Message)m;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        // Call id.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        headerBuilder.setCallId(this.id);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        if (t != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          ExceptionResponse.Builder exceptionBuilder = ExceptionResponse.newBuilder();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          exceptionBuilder.setExceptionClassName(t.getClass().getName());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          exceptionBuilder.setStackTrace(errorMsg);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          exceptionBuilder.setDoNotRetry(t instanceof DoNotRetryIOException);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          if (t instanceof RegionMovedException) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>            // Special casing for this exception.  This is only one carrying a payload.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            // Do this instead of build a generic system for allowing exceptions carry<a name="line.408"></a>
-<span class="sourceLineNo">409</span>            // any kind of payload.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            RegionMovedException rme = (RegionMovedException)t;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>            exceptionBuilder.setHostname(rme.getHostname());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            exceptionBuilder.setPort(rme.getPort());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>          }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          // Set the exception as the result of the method invocation.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          headerBuilder.setException(exceptionBuilder.build());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        // Pass reservoir to buildCellBlock. Keep reference to returne so can add it back to the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        // reservoir when finished. This is hacky and the hack is not contained but benefits are<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // high when we can avoid a big buffer allocation on each rpc.<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        this.cellBlock = ipcUtil.buildCellBlock(this.connection.codec,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          this.connection.compressionCodec, cells, reservoir);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        if (this.cellBlock != null) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          CellBlockMeta.Builder cellBlockBuilder = CellBlockMeta.newBuilder();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          // Presumes the cellBlock bytebuffer has been flipped so limit has total size in it.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          cellBlockBuilder.setLength(this.cellBlock.limit());<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          headerBuilder.setCellBlockMeta(cellBlockBuilder.build());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        Message header = headerBuilder.build();<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>        // Organize the response as a set of bytebuffers rather than collect it all together inside<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        // one big byte array; save on allocations.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        ByteBuffer bbHeader = IPCUtil.getDelimitedMessageAsByteBuffer(header);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        ByteBuffer bbResult = IPCUtil.getDelimitedMessageAsByteBuffer(result);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        int totalSize = bbHeader.capacity() + (bbResult == null? 0: bbResult.limit()) +<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          (this.cellBlock == null? 0: this.cellBlock.limit());<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        ByteBuffer bbTotalSize = ByteBuffer.wrap(Bytes.toBytes(totalSize));<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        bc = new BufferChain(bbTotalSize, bbHeader, bbResult, this.cellBlock);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (connection.useWrap) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          bc = wrapWithSasl(bc);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      } catch (IOException e) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        LOG.warn("Exception while creating response " + e);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      this.response = bc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      // Once a response message is created and set to this.response, this Call can be treated as<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      // done. The Responder thread will do the n/w write of this message back to client.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      if (this.callback != null) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        try {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          this.callback.run();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        } catch (Exception e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          // Don't allow any exception here to kill this handler thread.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          LOG.warn("Exception while running the Rpc Callback.", e);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    private BufferChain wrapWithSasl(BufferChain bc)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      if (!this.connection.useSasl) return bc;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      // Looks like no way around this; saslserver wants a byte array.  I have to make it one.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      // THIS IS A BIG UGLY COPY.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      byte [] responseBytes = bc.getBytes();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      byte [] token;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      // synchronization may be needed since there can be multiple Handler<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      // threads using saslServer to wrap responses.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      synchronized (connection.saslServer) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        token = connection.saslServer.wrap(responseBytes, 0, responseBytes.length);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      if (LOG.isTraceEnabled()) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        LOG.trace("Adding saslServer wrapped token of size " + token.length<a name="line.470"></a>
-<span class="sourceLineNo">471</span>            + " as call response.");<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>      ByteBuffer bbTokenLength = ByteBuffer.wrap(Bytes.toBytes(token.length));<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      ByteBuffer bbTokenBytes = ByteBuffer.wrap(token);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      return new BufferChain(bbTokenLength, bbTokenBytes);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    }<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>    @Override<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    public boolean isClientCellBlockSupported() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return this.connection != null &amp;&amp; this.connection.codec != null;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    @Override<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    public long disconnectSince() {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      if (!connection.channel.isOpen()) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        return System.currentTimeMillis() - timestamp;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      } else {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        return -1L;<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><a name="line.492"></a>
-<span class="sourceLineNo">493</span>    public long getSize() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      return this.size;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>    public long getResponseCellSize() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return responseCellSize;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    public void incrementResponseCellSize(long cellSize) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      responseCellSize += cellSize;<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>    @Override<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    public long getResponseBlockSize() {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      return responseBlockSize;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>    @Override<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    public void incrementResponseBlockSize(long blockSize) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      responseBlockSize += blockSize;<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>    public synchronized void sendResponseIfReady() throws IOException {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.responder.doRespond(this);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public UserGroupInformation getRemoteUser() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      return connection.ugi;<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    }<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>    @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    public User getRequestUser() {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      return user;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    @Override<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    public String getRequestUserName() {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      User user = getRequestUser();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      return user == null? null: user.getShortName();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>    @Override<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    public InetAddress getRemoteAddress() {<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      return remoteAddress;<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>    @Override<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    public VersionInfo getClientVersionInfo() {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      return connection.getVersionInfo();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>    @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    public synchronized void setCallBack(RpcCallback callback) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.callback = callback;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    @Override<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    public boolean isRetryImmediatelySupported() {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      return retryImmediatelySupported;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<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>  /** Listens on the socket. Creates jobs for the handler threads*/<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private class Listener extends Thread {<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    private ServerSocketChannel acceptChannel = null; //the accept channel<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private Selector selector = null; //the selector that we use for the server<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    private Reader[] readers = null;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    private int currentReader = 0;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    private Random rand = new Random();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    private long lastCleanupRunTime = 0; //the last time when a cleanup connec-<a name="line.563"></a>
-<span class="sourceLineNo">564</span>                                         //-tion (for idle connections) ran<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    private long cleanupInterval = 10000; //the minimum interval between<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                                          //two cleanup runs<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    private int backlogLength;<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>    private ExecutorService readPool;<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>    public Listener(final String name) throws IOException {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      super(name);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      backlogLength = conf.getInt("hbase.ipc.server.listen.queue.size", 128);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      // Create a new server socket and set to non blocking mode<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      acceptChannel = ServerSocketChannel.open();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      acceptChannel.configureBlocking(false);<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Bind the server socket to the binding addrees (can be different from the default interface)<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      bind(acceptChannel.socket(), bindAddress, backlogLength);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      port = acceptChannel.socket().getLocalPort(); //Could be an ephemeral port<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      address = (InetSocketAddress)acceptChannel.socket().getLocalSocketAddress();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      // create a selector;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      selector= Selector.open();<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>      readers = new Reader[readThreads];<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      readPool = Executors.newFixedThreadPool(readThreads,<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        new ThreadFactoryBuilder().setNameFormat(<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          "RpcServer.reader=%d,bindAddress=" + bindAddress.getHostName() +<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          ",port=" + port).setDaemon(true).build());<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      for (int i = 0; i &lt; readThreads; ++i) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        Reader reader = new Reader();<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        readers[i] = reader;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        readPool.execute(reader);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      LOG.info(getName() + ": started " + readThreads + " reader(s) listening on port=" + port);<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>      // Register accepts on the server socket with the selector.<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      acceptChannel.register(selector, SelectionKey.OP_ACCEPT);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.setName("RpcServer.listener,port=" + port);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      this.setDaemon(true);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.CallQueueTooBigException;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.conf.Configuration;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HConstants;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.Server;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.TableName;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.User;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.io.BytesWritable;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.io.IntWritable;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.io.Writable;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.io.WritableUtils;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.util.StringUtils;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.htrace.TraceInfo;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import com.google.protobuf.BlockingService;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import com.google.protobuf.CodedInputStream;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import com.google.protobuf.Message;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import com.google.protobuf.ServiceException;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import com.google.protobuf.TextFormat;<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>/**<a name="line.140"></a>
+<span class="sourceLineNo">141</span> * An RPC server that hosts protobuf described Services.<a name="line.141"></a>
+<span class="sourceLineNo">142</span> *<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.143"></a>
+<span class="sourceLineNo">144</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.146"></a>
+<span class="sourceLineNo">147</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * and loops till done.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> *<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * and keep taking while the server is up.<a name="line.153"></a>
+<span class="sourceLineNo">154</span> *<a name="line.154"></a>
+<span class="sourceLineNo">155</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.155"></a>
+<span class="sourceLineNo">156</span> * queue for Responder to pull from and return result to client.<a name="line.156"></a>
+<span class="sourceLineNo">157</span> *<a name="line.157"></a>
+<span class="sourceLineNo">158</span> * @see RpcClientImpl<a name="line.158"></a>
+<span class="sourceLineNo">159</span> */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.160"></a>
+<span class="sourceLineNo">161</span>@InterfaceStability.Evolving<a name="line.161"></a>
+<span class="sourceLineNo">162</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      = new CallQueueTooBigException();<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  private final boolean authorize;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private boolean isSecurityEnabled;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public static final byte CURRENT_VERSION = 0;<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.176"></a>
+<span class="sourceLineNo">177</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * How many calls/handler are allowed in the queue.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * The maximum size that we can hold in the RPC queue<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final IPCUtil ipcUtil;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    Server.class.getName());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  protected ServiceAuthorizationManager authManager;<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * after the call returns.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  protected final InetSocketAddress bindAddress;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  protected int port;                             // port we listen on<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private int readThreads;                        // number of read threads<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                                  // which a client may be<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                                  // disconnected<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                                  // connections after which we<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                                  // will start cleaning up idle<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                                  // connections<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                                  // connections to nuke<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                                  // during a cleanup<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  protected MetricsHBaseServer metrics;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  protected final Configuration conf;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  private int maxQueueSize;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  protected int socketSendBufferSize;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  protected final long purgeTimeout;    // in milliseconds<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>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  volatile boolean running = true;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  /**<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * for business by the call to {@link #start()}.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   */<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  volatile boolean started = false;<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  /**<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  protected final Counter callQueueSize = new Counter();<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  //maintain a list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  //of client connections<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  private Listener listener = null;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  protected Responder responder = null;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  protected int numConnections = 0;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>  /** Default value for above params */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  private final int warnResponseTime;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  private final int warnResponseSize;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  private final Server server;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  private final RpcScheduler scheduler;<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>  private UserProvider userProvider;<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>  private final BoundedByteBufferPool reservoir;<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * the result.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  class Call implements RpcCallContext {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    protected int id;                             // the client's call id<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    protected BlockingService service;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    protected MethodDescriptor md;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    protected RequestHeader header;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    protected Message param;                      // the parameter passed<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    // Optional cell data passed outside of protobufs.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    protected CellScanner cellScanner;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    protected Connection connection;              // connection to client<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    protected long timestamp;      // the time received when response is null<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                   // the time served when response is not null<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span>     * Chain of buffers to send as response.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>     */<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    protected BufferChain response;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    protected Responder responder;<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    protected long size;                          // size of current call<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    protected boolean isError;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    protected TraceInfo tinfo;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    private ByteBuffer cellBlock = null;<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    private User user;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    private InetAddress remoteAddress;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    private RpcCallback callback;<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    private long responseCellSize = 0;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    private long responseBlockSize = 0;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    private boolean retryImmediatelySupported;<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      this.id = id;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      this.service = service;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      this.md = md;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      this.header = header;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      this.param = param;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      this.cellScanner = cellScanner;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      this.connection = connection;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      this.timestamp = System.currentTimeMillis();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      this.response = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      this.responder = responder;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      this.isError = false;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      this.size = size;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      this.tinfo = tinfo;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      this.remoteAddress = remoteAddress;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      this.retryImmediatelySupported =<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          connection == null? null: connection.retryImmediatelySupported;<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>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.342"></a>
+<span class="sourceLineNo">343</span>     * cleanup.<a name="line.343"></a>
+<span class="sourceLineNo">344</span>     */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    void done() {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        // Return buffer to reservoir now we are done with it.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        reservoir.putBuffer(this.cellBlock);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        this.cellBlock = null;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    @Override<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    public String toString() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      return toShortString() + " param: " +<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        " connection: " + connection.toString();<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    protected RequestHeader getHeader() {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      return this.header;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>    /*<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * the payload of a command<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    String toShortString() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      String serviceName = this.connection.service != null ?<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.374"></a>
+<span class="sourceLineNo">375</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.375"></a>
+<span class="sourceLineNo">376</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.376"></a>
+<span class="sourceLineNo">377</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      String serviceName = this.connection.service != null ?<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return serviceName + "." + methodName;<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>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 749a263..2361dfe 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -519,7 +519,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index 00efa7c..a8cf85f 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -785,7 +785,7 @@ window.onLoad = init();
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testapidocs/index-all.html b/testapidocs/index-all.html
index 6b72c64..f363614 100644
--- a/testapidocs/index-all.html
+++ b/testapidocs/index-all.html
@@ -846,6 +846,8 @@
 <dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/errorhandling/package-summary.html">org.apache.hadoop.hbase.errorhandling</a> - package org.apache.hadoop.hbase.errorhandling</dt>
 <dd>&nbsp;</dd>
+<dt><a href="./org/apache/hadoop/hbase/exceptions/package-summary.html">org.apache.hadoop.hbase.exceptions</a> - package org.apache.hadoop.hbase.exceptions</dt>
+<dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/filter/package-summary.html">org.apache.hadoop.hbase.filter</a> - package org.apache.hadoop.hbase.filter</dt>
 <dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/http/package-summary.html">org.apache.hadoop.hbase.http</a> - package org.apache.hadoop.hbase.http</dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testapidocs/org/apache/hadoop/hbase/errorhandling/package-summary.html
----------------------------------------------------------------------
diff --git a/testapidocs/org/apache/hadoop/hbase/errorhandling/package-summary.html b/testapidocs/org/apache/hadoop/hbase/errorhandling/package-summary.html
index 8ebad1c..6115a84 100644
--- a/testapidocs/org/apache/hadoop/hbase/errorhandling/package-summary.html
+++ b/testapidocs/org/apache/hadoop/hbase/errorhandling/package-summary.html
@@ -36,7 +36,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/package-summary.html">Prev Package</a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/filter/package-summary.html">Next Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html">Next Package</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/errorhandling/package-summary.html" target="_top">Frames</a></li>
@@ -84,7 +84,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/package-summary.html">Prev Package</a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/filter/package-summary.html">Next Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html">Next Package</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/errorhandling/package-summary.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testapidocs/org/apache/hadoop/hbase/errorhandling/package-tree.html
----------------------------------------------------------------------
diff --git a/testapidocs/org/apache/hadoop/hbase/errorhandling/package-tree.html b/testapidocs/org/apache/hadoop/hbase/errorhandling/package-tree.html
index 8c9809d..91d01ff 100644
--- a/testapidocs/org/apache/hadoop/hbase/errorhandling/package-tree.html
+++ b/testapidocs/org/apache/hadoop/hbase/errorhandling/package-tree.html
@@ -36,7 +36,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/filter/package-tree.html">Next</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/errorhandling/package-tree.html" target="_top">Frames</a></li>
@@ -88,7 +88,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/filter/package-tree.html">Next</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/errorhandling/package-tree.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html
----------------------------------------------------------------------
diff --git a/testapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html b/testapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html
new file mode 100644
index 0000000..17ca55f
--- /dev/null
+++ b/testapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.hadoop.hbase.exceptions (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html" target="classFrame">org.apache.hadoop.hbase.exceptions</a></h1>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html
----------------------------------------------------------------------
diff --git a/testapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html b/testapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html
new file mode 100644
index 0000000..6263f45
--- /dev/null
+++ b/testapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.hadoop.hbase.exceptions (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.apache.hadoop.hbase.exceptions (Apache HBase 2.0.0-SNAPSHOT Test API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.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/errorhandling/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/filter/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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">
+<h1 title="Package" class="title">Package&nbsp;org.apache.hadoop.hbase.exceptions</h1>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.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/errorhandling/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/filter/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/testapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html
----------------------------------------------------------------------
diff --git a/testapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html b/testapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html
new file mode 100644
index 0000000..e527663
--- /dev/null
+++ b/testapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.hadoop.hbase.exceptions Class Hierarchy (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.apache.hadoop.hbase.exceptions Class Hierarchy (Apache HBase 2.0.0-SNAPSHOT Test API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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/errorhandling/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/filter/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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">
+<h1 class="title">Hierarchy For Package org.apache.hadoop.hbase.exceptions</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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/errorhandling/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/filter/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/testapidocs/org/apache/hadoop/hbase/exceptions/package-use.html
----------------------------------------------------------------------
diff --git a/testapidocs/org/apache/hadoop/hbase/exceptions/package-use.html b/testapidocs/org/apache/hadoop/hbase/exceptions/package-use.html
new file mode 100644
index 0000000..afe5153
--- /dev/null
+++ b/testapidocs/org/apache/hadoop/hbase/exceptions/package-use.html
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.hadoop.hbase.exceptions (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Package org.apache.hadoop.hbase.exceptions (Apache HBase 2.0.0-SNAPSHOT Test API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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</li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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">
+<h1 title="Uses of Package org.apache.hadoop.hbase.exceptions" class="title">Uses of Package<br>org.apache.hadoop.hbase.exceptions</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.hadoop.hbase.exceptions</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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</li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/testapidocs/org/apache/hadoop/hbase/filter/package-summary.html
----------------------------------------------------------------------
diff --git a/testapidocs/org/apache/hadoop/hbase/filter/package-summary.html b/testapidocs/org/apache/hadoop/hbase/filter/package-summary.html
index 65d09f7..b9980dc 100644
--- a/testapidocs/org/apache/hadoop/hbase/filter/package-summary.html
+++ b/testapidocs/org/apache/hadoop/hbase/filter/package-summary.html
@@ -35,7 +35,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/errorhandling/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html">Prev Package</a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/http/package-summary.html">Next Package</a></li>
 </ul>
 <ul class="navList">
@@ -83,7 +83,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/errorhandling/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html">Prev Package</a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/http/package-summary.html">Next Package</a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testapidocs/org/apache/hadoop/hbase/filter/package-tree.html
----------------------------------------------------------------------
diff --git a/testapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/testapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index 8b39722..eb53ff4 100644
--- a/testapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/testapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -35,7 +35,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/errorhandling/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-tree.html">Prev</a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/http/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">
@@ -87,7 +87,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/errorhandling/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-tree.html">Prev</a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/http/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testapidocs/overview-frame.html
----------------------------------------------------------------------
diff --git a/testapidocs/overview-frame.html b/testapidocs/overview-frame.html
index a80e45d..1d5277b 100644
--- a/testapidocs/overview-frame.html
+++ b/testapidocs/overview-frame.html
@@ -22,6 +22,7 @@
 <li><a href="org/apache/hadoop/hbase/conf/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.conf</a></li>
 <li><a href="org/apache/hadoop/hbase/coprocessor/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.coprocessor</a></li>
 <li><a href="org/apache/hadoop/hbase/errorhandling/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.errorhandling</a></li>
+<li><a href="org/apache/hadoop/hbase/exceptions/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.exceptions</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.filter</a></li>
 <li><a href="org/apache/hadoop/hbase/http/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.http</a></li>
 <li><a href="org/apache/hadoop/hbase/http/conf/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.http.conf</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testapidocs/overview-summary.html
----------------------------------------------------------------------
diff --git a/testapidocs/overview-summary.html b/testapidocs/overview-summary.html
index c2f731d..86f6770 100644
--- a/testapidocs/overview-summary.html
+++ b/testapidocs/overview-summary.html
@@ -117,170 +117,174 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/filter/package-summary.html">org.apache.hadoop.hbase.filter</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/exceptions/package-summary.html">org.apache.hadoop.hbase.exceptions</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/package-summary.html">org.apache.hadoop.hbase.http</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/filter/package-summary.html">org.apache.hadoop.hbase.filter</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/conf/package-summary.html">org.apache.hadoop.hbase.http.conf</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/package-summary.html">org.apache.hadoop.hbase.http</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/jmx/package-summary.html">org.apache.hadoop.hbase.http.jmx</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/conf/package-summary.html">org.apache.hadoop.hbase.http.conf</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/log/package-summary.html">org.apache.hadoop.hbase.http.log</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/jmx/package-summary.html">org.apache.hadoop.hbase.http.jmx</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/resource/package-summary.html">org.apache.hadoop.hbase.http.resource</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/log/package-summary.html">org.apache.hadoop.hbase.http.log</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/ssl/package-summary.html">org.apache.hadoop.hbase.http.ssl</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/resource/package-summary.html">org.apache.hadoop.hbase.http.resource</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/package-summary.html">org.apache.hadoop.hbase.io</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/ssl/package-summary.html">org.apache.hadoop.hbase.http.ssl</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/crypto/package-summary.html">org.apache.hadoop.hbase.io.crypto</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/package-summary.html">org.apache.hadoop.hbase.io</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/crypto/aes/package-summary.html">org.apache.hadoop.hbase.io.crypto.aes</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/crypto/package-summary.html">org.apache.hadoop.hbase.io.crypto</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/encoding/package-summary.html">org.apache.hadoop.hbase.io.encoding</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/crypto/aes/package-summary.html">org.apache.hadoop.hbase.io.crypto.aes</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/encoding/package-summary.html">org.apache.hadoop.hbase.io.encoding</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/util/package-summary.html">org.apache.hadoop.hbase.io.util</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/util/package-summary.html">org.apache.hadoop.hbase.io.util</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mapred/package-summary.html">org.apache.hadoop.hbase.mapred</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mapreduce/package-summary.html">org.apache.hadoop.hbase.mapreduce</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mapred/package-summary.html">org.apache.hadoop.hbase.mapred</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/master/package-summary.html">org.apache.hadoop.hbase.master</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mapreduce/package-summary.html">org.apache.hadoop.hbase.mapreduce</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/master/package-summary.html">org.apache.hadoop.hbase.master</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/compactions/package-summary.html">org.apache.hadoop.hbase.mob.compactions</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/mapreduce/package-summary.html">org.apache.hadoop.hbase.mob.mapreduce</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/compactions/package-summary.html">org.apache.hadoop.hbase.mob.compactions</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mttr/package-summary.html">org.apache.hadoop.hbase.mttr</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/mapreduce/package-summary.html">org.apache.hadoop.hbase.mob.mapreduce</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/namespace/package-summary.html">org.apache.hadoop.hbase.namespace</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mttr/package-summary.html">org.apache.hadoop.hbase.mttr</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/nio/package-summary.html">org.apache.hadoop.hbase.nio</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/namespace/package-summary.html">org.apache.hadoop.hbase.namespace</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/nio/package-summary.html">org.apache.hadoop.hbase.nio</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/regionserver/wal/package-summary.html">org.apache.hadoop.hbase.regionserver.wal</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/regionserver/wal/package-summary.html">org.apache.hadoop.hbase.regionserver.wal</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/rest/package-summary.html">org.apache.hadoop.hbase.rest</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/rest/client/package-summary.html">org.apache.hadoop.hbase.rest.client</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/rest/package-summary.html">org.apache.hadoop.hbase.rest</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/security/package-summary.html">org.apache.hadoop.hbase.security</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/rest/client/package-summary.html">org.apache.hadoop.hbase.rest.client</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/snapshot/package-summary.html">org.apache.hadoop.hbase.snapshot</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/security/package-summary.html">org.apache.hadoop.hbase.security</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/spark/package-summary.html">org.apache.hadoop.hbase.spark</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/snapshot/package-summary.html">org.apache.hadoop.hbase.snapshot</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/test/package-summary.html">org.apache.hadoop.hbase.test</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/spark/package-summary.html">org.apache.hadoop.hbase.spark</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/testclassification/package-summary.html">org.apache.hadoop.hbase.testclassification</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/test/package-summary.html">org.apache.hadoop.hbase.test</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/types/package-summary.html">org.apache.hadoop.hbase.types</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/testclassification/package-summary.html">org.apache.hadoop.hbase.testclassification</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/types/package-summary.html">org.apache.hadoop.hbase.types</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/bytes/package-summary.html">org.apache.hadoop.hbase.util.bytes</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/comparator/package-summary.html">org.apache.hadoop.hbase.util.comparator</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/bytes/package-summary.html">org.apache.hadoop.hbase.util.bytes</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/hbck/package-summary.html">org.apache.hadoop.hbase.util.hbck</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/comparator/package-summary.html">org.apache.hadoop.hbase.util.comparator</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/number/package-summary.html">org.apache.hadoop.hbase.util.number</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/hbck/package-summary.html">org.apache.hadoop.hbase.util.hbck</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/wal/package-summary.html">org.apache.hadoop.hbase.wal</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/number/package-summary.html">org.apache.hadoop.hbase.util.number</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="org/apache/hadoop/hbase/wal/package-summary.html">org.apache.hadoop.hbase.wal</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testapidocs/overview-tree.html b/testapidocs/overview-tree.html
index 09407c7..600d7c4 100644
--- a/testapidocs/overview-tree.html
+++ b/testapidocs/overview-tree.html
@@ -76,6 +76,7 @@
 <li><a href="org/apache/hadoop/hbase/conf/package-tree.html">org.apache.hadoop.hbase.conf</a>, </li>
 <li><a href="org/apache/hadoop/hbase/coprocessor/package-tree.html">org.apache.hadoop.hbase.coprocessor</a>, </li>
 <li><a href="org/apache/hadoop/hbase/errorhandling/package-tree.html">org.apache.hadoop.hbase.errorhandling</a>, </li>
+<li><a href="org/apache/hadoop/hbase/exceptions/package-tree.html">org.apache.hadoop.hbase.exceptions</a>, </li>
 <li><a href="org/apache/hadoop/hbase/filter/package-tree.html">org.apache.hadoop.hbase.filter</a>, </li>
 <li><a href="org/apache/hadoop/hbase/http/package-tree.html">org.apache.hadoop.hbase.http</a>, </li>
 <li><a href="org/apache/hadoop/hbase/http/conf/package-tree.html">org.apache.hadoop.hbase.http.conf</a>, </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testapidocs/package-list
----------------------------------------------------------------------
diff --git a/testapidocs/package-list b/testapidocs/package-list
index d71e962..878bce2 100644
--- a/testapidocs/package-list
+++ b/testapidocs/package-list
@@ -9,6 +9,7 @@ org.apache.hadoop.hbase.client.replication
 org.apache.hadoop.hbase.conf
 org.apache.hadoop.hbase.coprocessor
 org.apache.hadoop.hbase.errorhandling
+org.apache.hadoop.hbase.exceptions
 org.apache.hadoop.hbase.filter
 org.apache.hadoop.hbase.http
 org.apache.hadoop.hbase.http.conf

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index 54da428..616260f 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -600,6 +600,7 @@
 <li><a href="org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.AllValidPaths.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">TestCleanerChore.AllValidPaths</a></li>
 <li><a href="org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.AlwaysDelete.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">TestCleanerChore.AlwaysDelete</a></li>
 <li><a href="org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.NeverDelete.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">TestCleanerChore.NeverDelete</a></li>
+<li><a href="org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions" target="classFrame">TestClientExceptionsUtil</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestClientExponentialBackoff.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestClientExponentialBackoff</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestClientNoCluster.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestClientNoCluster</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestClientNoCluster.FakeServer.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestClientNoCluster.FakeServer</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index 2098aa7..ea6feb1 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -600,6 +600,7 @@
 <li><a href="org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.AllValidPaths.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestCleanerChore.AllValidPaths</a></li>
 <li><a href="org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.AlwaysDelete.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestCleanerChore.AlwaysDelete</a></li>
 <li><a href="org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.NeverDelete.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestCleanerChore.NeverDelete</a></li>
+<li><a href="org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">TestClientExceptionsUtil</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestClientExponentialBackoff.html" title="class in org.apache.hadoop.hbase.client">TestClientExponentialBackoff</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestClientNoCluster.html" title="class in org.apache.hadoop.hbase.client">TestClientNoCluster</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestClientNoCluster.FakeServer.html" title="class in org.apache.hadoop.hbase.client">TestClientNoCluster.FakeServer</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 9baa0f6..46ff6cb 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -7505,6 +7505,8 @@
 </a>
 <h2 class="title">E</h2>
 <dl>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#e">e</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.CallerWithFailure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.html#E">E</a></span> - Static variable in class org.apache.hadoop.hbase.coprocessor.<a href="./org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.html" title="class in org.apache.hadoop.hbase.coprocessor">TestRowProcessorEndpoint</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/regionserver/TestHRegion.GetTillDoneOrException.html#e">e</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="./org/apache/hadoop/hbase/regionserver/TestHRegion.GetTillDoneOrException.html" title="class in org.apache.hadoop.hbase.regionserver">TestHRegion.GetTillDoneOrException</a></dt>
@@ -14211,6 +14213,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/coprocessor/example/TestBulkDeleteProtocol.html#invokeBulkDeleteProtocol(org.apache.hadoop.hbase.TableName,%20org.apache.hadoop.hbase.client.Scan,%20int,%20org.apache.hadoop.hbase.coprocessor.example.generated.BulkDeleteProtos.BulkDeleteRequest.DeleteType,%20java.lang.Long)">invokeBulkDeleteProtocol(TableName, Scan, int, BulkDeleteProtos.BulkDeleteRequest.DeleteType, Long)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.example.<a href="./org/apache/hadoop/hbase/coprocessor/example/TestBulkDeleteProtocol.html" title="class in org.apache.hadoop.hbase.coprocessor.example">TestBulkDeleteProtocol</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#ioe">ioe</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.AsyncProcessWithFailure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/io/hfile/bucket/TestBucketCache.html#ioEngineName">ioEngineName</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="./org/apache/hadoop/hbase/io/hfile/bucket/TestBucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">TestBucketCache</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/wal/IOTestProvider.html" title="class in org.apache.hadoop.hbase.wal"><span class="strong">IOTestProvider</span></a> - Class in <a href="./org/apache/hadoop/hbase/wal/package-summary.html">org.apache.hadoop.hbase.wal</a></dt>
@@ -19147,6 +19151,8 @@
 <dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/errorhandling/package-summary.html">org.apache.hadoop.hbase.errorhandling</a> - package org.apache.hadoop.hbase.errorhandling</dt>
 <dd>&nbsp;</dd>
+<dt><a href="./org/apache/hadoop/hbase/exceptions/package-summary.html">org.apache.hadoop.hbase.exceptions</a> - package org.apache.hadoop.hbase.exceptions</dt>
+<dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/executor/package-summary.html">org.apache.hadoop.hbase.executor</a> - package org.apache.hadoop.hbase.executor</dt>
 <dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/filter/package-summary.html">org.apache.hadoop.hbase.filter</a> - package org.apache.hadoop.hbase.filter</dt>
@@ -31043,11 +31049,11 @@
 <dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">TestAsyncProcess.AsyncProcessWithFailure</span></a> - Class in <a href="./org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#TestAsyncProcess.AsyncProcessWithFailure(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.conf.Configuration)">TestAsyncProcess.AsyncProcessWithFailure(ClusterConnection, Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.AsyncProcessWithFailure</a></dt>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#TestAsyncProcess.AsyncProcessWithFailure(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.conf.Configuration,%20java.io.IOException)">TestAsyncProcess.AsyncProcessWithFailure(ClusterConnection, Configuration, IOException)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.AsyncProcessWithFailure</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">TestAsyncProcess.CallerWithFailure</span></a> - Class in <a href="./org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#TestAsyncProcess.CallerWithFailure()">TestAsyncProcess.CallerWithFailure()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.CallerWithFailure</a></dt>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#TestAsyncProcess.CallerWithFailure(java.io.IOException)">TestAsyncProcess.CallerWithFailure(IOException)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.CallerWithFailure</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">TestAsyncProcess.CountingThreadFactory</span></a> - Class in <a href="./org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>&nbsp;</dd>
@@ -31877,6 +31883,8 @@
 </dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/thrift/TestCallQueue.html#TestCallQueue(int,%20int)">TestCallQueue(int, int)</a></span> - Constructor for class org.apache.hadoop.hbase.thrift.<a href="./org/apache/hadoop/hbase/thrift/TestCallQueue.html" title="class in org.apache.hadoop.hbase.thrift">TestCallQueue</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/TestAsyncProcess.html#testCallQueueTooLarge()">testCallQueueTooLarge()</a></span> - Method 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><a href="./org/apache/hadoop/hbase/ipc/TestCallRunner.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">TestCallRunner</span></a> - Class in <a href="./org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/ipc/TestCallRunner.html#TestCallRunner()">TestCallRunner()</a></span> - Constructor for class org.apache.hadoop.hbase.ipc.<a href="./org/apache/hadoop/hbase/ipc/TestCallRunner.html" title="class in org.apache.hadoop.hbase.ipc">TestCallRunner</a></dt>
@@ -32341,6 +32349,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/security/visibility/TestVisibilityLabels.html#testClearUserAuths()">testClearUserAuths()</a></span> - Method in class org.apache.hadoop.hbase.security.visibility.<a href="./org/apache/hadoop/hbase/security/visibility/TestVisibilityLabels.html" title="class in org.apache.hadoop.hbase.security.visibility">TestVisibilityLabels</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="./org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">TestClientExceptionsUtil</span></a> - Class in <a href="./org/apache/hadoop/hbase/exceptions/package-summary.html">org.apache.hadoop.hbase.exceptions</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html#TestClientExceptionsUtil()">TestClientExceptionsUtil()</a></span> - Constructor for class org.apache.hadoop.hbase.exceptions.<a href="./org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">TestClientExceptionsUtil</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/client/TestClientExponentialBackoff.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">TestClientExponentialBackoff</span></a> - Class in <a href="./org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/TestClientExponentialBackoff.html#TestClientExponentialBackoff()">TestClientExponentialBackoff()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="./org/apache/hadoop/hbase/client/TestClientExponentialBackoff.html" title="class in org.apache.hadoop.hbase.client">TestClientExponentialBackoff</a></dt>
@@ -34783,6 +34795,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/coprocessor/TestClassLoading.html#testFindCoprocessors()">testFindCoprocessors()</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="./org/apache/hadoop/hbase/coprocessor/TestClassLoading.html" title="class in org.apache.hadoop.hbase.coprocessor">TestClassLoading</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html#testFindException()">testFindException()</a></span> - Method in class org.apache.hadoop.hbase.exceptions.<a href="./org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">TestClientExceptionsUtil</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/regionserver/wal/TestSequenceIdAccounting.html#testFindLower()">testFindLower()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="./org/apache/hadoop/hbase/regionserver/wal/TestSequenceIdAccounting.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestSequenceIdAccounting</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/regionserver/wal/TestFSHLog.html#testFindMemStoresEligibleForFlush()">testFindMemStoresEligibleForFlush()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="./org/apache/hadoop/hbase/regionserver/wal/TestFSHLog.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestFSHLog</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html
index f41e5f7..4578dc9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1068">TestAsyncProcess.AsyncProcessForThrowableCheck</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1097">TestAsyncProcess.AsyncProcessForThrowableCheck</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -593,7 +593,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess.AsyncProcessForThrowableCheck</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html#line.1069">TestAsyncProcess.AsyncProcessForThrowableCheck</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html#line.1098">TestAsyncProcess.AsyncProcessForThrowableCheck</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
                                               org.apache.hadoop.conf.Configuration&nbsp;conf,
                                               <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</pre>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html
index bc7c000..e881283 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html
@@ -104,7 +104,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.232">TestAsyncProcess.AsyncProcessWithFailure</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.237">TestAsyncProcess.AsyncProcessWithFailure</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcess</a></pre>
 </li>
 </ul>
@@ -172,66 +172,70 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#id">id</a></strong></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#ioe">ioe</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#maxConcurrentTasksPerRegion">maxConcurrentTasksPerRegion</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#maxConcurrentTasksPerServer">maxConcurrentTasksPerServer</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#maxTotalConcurrentTasks">maxTotalConcurrentTasks</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#numTries">numTries</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected long</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#pause">pause</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#pool">pool</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#PRIMARY_CALL_TIMEOUT_KEY">PRIMARY_CALL_TIMEOUT_KEY</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected long</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#primaryCallTimeoutMicroseconds">primaryCallTimeoutMicroseconds</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected org.apache.hadoop.hbase.client.RpcRetryingCallerFactory</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#rpcCallerFactory">rpcCallerFactory</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected org.apache.hadoop.hbase.ipc.RpcControllerFactory</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#rpcFactory">rpcFactory</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#serverTrackerTimeout">serverTrackerTimeout</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#START_LOG_ERRORS_AFTER_COUNT_KEY">START_LOG_ERRORS_AFTER_COUNT_KEY</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#taskCounterPerRegion">taskCounterPerRegion</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;org.apache.hadoop.hbase.ServerName,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#taskCounterPerServer">taskCounterPerServer</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#tasksInProgress">tasksInProgress</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#timeout">timeout</a></strong></code>&nbsp;</td>
 </tr>
@@ -257,8 +261,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#TestAsyncProcess.AsyncProcessWithFailure(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.conf.Configuration)">TestAsyncProcess.AsyncProcessWithFailure</a></strong>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
-                                                                                org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
+<td class="colOne"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#TestAsyncProcess.AsyncProcessWithFailure(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.conf.Configuration,%20java.io.IOException)">TestAsyncProcess.AsyncProcessWithFailure</a></strong>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
+                                                                                org.apache.hadoop.conf.Configuration&nbsp;conf,
+                                                                                <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;ioe)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -387,6 +392,15 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <!--   -->
 </a>
 <h3>Field Detail</h3>
+<a name="ioe">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ioe</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#line.239">ioe</a></pre>
+</li>
+</ul>
 <a name="COUNTER">
 <!--   -->
 </a>
@@ -587,14 +601,15 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="TestAsyncProcess.AsyncProcessWithFailure(org.apache.hadoop.hbase.client.ClusterConnection, org.apache.hadoop.conf.Configuration)">
+<a name="TestAsyncProcess.AsyncProcessWithFailure(org.apache.hadoop.hbase.client.ClusterConnection, org.apache.hadoop.conf.Configuration, java.io.IOException)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess.AsyncProcessWithFailure</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#line.234">TestAsyncProcess.AsyncProcessWithFailure</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
-                                        org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#line.241">TestAsyncProcess.AsyncProcessWithFailure</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
+                                        org.apache.hadoop.conf.Configuration&nbsp;conf,
+                                        <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;ioe)</pre>
 </li>
 </ul>
 </li>
@@ -611,7 +626,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>createCaller</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.client.RpcRetryingCaller&lt;org.apache.hadoop.hbase.client.MultiResponse&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#line.240">createCaller</a>(org.apache.hadoop.hbase.client.MultiServerCallable&lt;org.apache.hadoop.hbase.client.Row&gt;&nbsp;callable)</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.client.RpcRetryingCaller&lt;org.apache.hadoop.hbase.client.MultiResponse&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html#line.248">createCaller</a>(org.apache.hadoop.hbase.client.MultiServerCallable&lt;org.apache.hadoop.hbase.client.Row&gt;&nbsp;callable)</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#createCaller(org.apache.hadoop.hbase.client.MultiServerCallable)">createCaller</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcess</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html
index 3c105ca..06f96a9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html
@@ -61,13 +61,13 @@
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#fields_inherited_from_class_org.apache.hadoop.hbase.client.RpcRetryingCallerImpl">Field</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>Field&nbsp;|&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>
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.219">TestAsyncProcess.CallerWithFailure</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.220">TestAsyncProcess.CallerWithFailure</a>
 extends org.apache.hadoop.hbase.client.RpcRetryingCallerImpl&lt;org.apache.hadoop.hbase.client.MultiResponse&gt;</pre>
 </li>
 </ul>
@@ -122,6 +122,17 @@ extends org.apache.hadoop.hbase.client.RpcRetryingCallerImpl&lt;org.apache.hadoo
 <!--   -->
 </a>
 <h3>Field Summary</h3>
+<table class="overviewSummary" 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 <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#e">e</a></strong></code>&nbsp;</td>
+</tr>
+</table>
 <ul class="blockList">
 <li class="blockList"><a name="fields_inherited_from_class_org.apache.hadoop.hbase.client.RpcRetryingCallerImpl">
 <!--   -->
@@ -143,7 +154,7 @@ extends org.apache.hadoop.hbase.client.RpcRetryingCallerImpl&lt;org.apache.hadoo
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#TestAsyncProcess.CallerWithFailure()">TestAsyncProcess.CallerWithFailure</a></strong>()</code>&nbsp;</td>
+<td class="colOne"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#TestAsyncProcess.CallerWithFailure(java.io.IOException)">TestAsyncProcess.CallerWithFailure</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;e)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -188,19 +199,36 @@ extends org.apache.hadoop.hbase.client.RpcRetryingCallerImpl&lt;org.apache.hadoo
 <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="e">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>e</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#line.222">e</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="TestAsyncProcess.CallerWithFailure()">
+<a name="TestAsyncProcess.CallerWithFailure(java.io.IOException)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess.CallerWithFailure</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#line.221">TestAsyncProcess.CallerWithFailure</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#line.224">TestAsyncProcess.CallerWithFailure</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;e)</pre>
 </li>
 </ul>
 </li>
@@ -217,7 +245,7 @@ extends org.apache.hadoop.hbase.client.RpcRetryingCallerImpl&lt;org.apache.hadoo
 <ul class="blockListLast">
 <li class="blockList">
 <h4>callWithoutRetries</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.client.MultiResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#line.226">callWithoutRetries</a>(org.apache.hadoop.hbase.client.RetryingCallable&lt;org.apache.hadoop.hbase.client.MultiResponse&gt;&nbsp;callable,
+<pre>public&nbsp;org.apache.hadoop.hbase.client.MultiResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html#line.230">callWithoutRetries</a>(org.apache.hadoop.hbase.client.RetryingCallable&lt;org.apache.hadoop.hbase.client.MultiResponse&gt;&nbsp;callable,
                                                               int&nbsp;callTimeout)
                                                                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                                        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</a></pre>
@@ -283,13 +311,13 @@ extends org.apache.hadoop.hbase.client.RpcRetryingCallerImpl&lt;org.apache.hadoo
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#fields_inherited_from_class_org.apache.hadoop.hbase.client.RpcRetryingCallerImpl">Field</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>Field&nbsp;|&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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html
index fc8a561..fdacd64 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.118">TestAsyncProcess.CountingThreadFactory</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.119">TestAsyncProcess.CountingThreadFactory</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a></pre>
 </li>
@@ -196,7 +196,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>nbThreads</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html#line.119">nbThreads</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html#line.120">nbThreads</a></pre>
 </li>
 </ul>
 <a name="realFactory">
@@ -205,7 +205,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>realFactory</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html#line.120">realFactory</a></pre>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html#line.121">realFactory</a></pre>
 </li>
 </ul>
 </li>
@@ -222,7 +222,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess.CountingThreadFactory</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html#line.127">TestAsyncProcess.CountingThreadFactory</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&nbsp;nbThreads)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html#line.128">TestAsyncProcess.CountingThreadFactory</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&nbsp;nbThreads)</pre>
 </li>
 </ul>
 </li>
@@ -239,7 +239,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>newThread</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html#line.122">newThread</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;r)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html#line.123">newThread</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;r)</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true#newThread(java.lang.Runnable)" title="class or interface in java.util.concurrent">newThread</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a></code></dd>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.CallPriorityComparator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.CallPriorityComparator.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.CallPriorityComparator.html
index dae3d27..856be7b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.CallPriorityComparator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.CallPriorityComparator.html
@@ -198,15 +198,15 @@
 <span class="sourceLineNo">190</span>  }<a name="line.190"></a>
 <span class="sourceLineNo">191</span><a name="line.191"></a>
 <span class="sourceLineNo">192</span>  @Override<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  public void dispatch(CallRunner callTask) throws InterruptedException {<a name="line.193"></a>
+<span class="sourceLineNo">193</span>  public boolean dispatch(CallRunner callTask) throws InterruptedException {<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    RpcServer.Call call = callTask.getCall();<a name="line.194"></a>
 <span class="sourceLineNo">195</span>    int level = priority.getPriority(call.getHeader(), call.param, call.getRequestUser());<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    if (priorityExecutor != null &amp;&amp; level &gt; highPriorityLevel) {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      priorityExecutor.dispatch(callTask);<a name="line.197"></a>
+<span class="sourceLineNo">197</span>      return priorityExecutor.dispatch(callTask);<a name="line.197"></a>
 <span class="sourceLineNo">198</span>    } else if (replicationExecutor != null &amp;&amp; level == HConstants.REPLICATION_QOS) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      replicationExecutor.dispatch(callTask);<a name="line.199"></a>
+<span class="sourceLineNo">199</span>      return replicationExecutor.dispatch(callTask);<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    } else {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      callExecutor.dispatch(callTask);<a name="line.201"></a>
+<span class="sourceLineNo">201</span>      return callExecutor.dispatch(callTask);<a name="line.201"></a>
 <span class="sourceLineNo">202</span>    }<a name="line.202"></a>
 <span class="sourceLineNo">203</span>  }<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
index dae3d27..856be7b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
@@ -198,15 +198,15 @@
 <span class="sourceLineNo">190</span>  }<a name="line.190"></a>
 <span class="sourceLineNo">191</span><a name="line.191"></a>
 <span class="sourceLineNo">192</span>  @Override<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  public void dispatch(CallRunner callTask) throws InterruptedException {<a name="line.193"></a>
+<span class="sourceLineNo">193</span>  public boolean dispatch(CallRunner callTask) throws InterruptedException {<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    RpcServer.Call call = callTask.getCall();<a name="line.194"></a>
 <span class="sourceLineNo">195</span>    int level = priority.getPriority(call.getHeader(), call.param, call.getRequestUser());<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    if (priorityExecutor != null &amp;&amp; level &gt; highPriorityLevel) {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      priorityExecutor.dispatch(callTask);<a name="line.197"></a>
+<span class="sourceLineNo">197</span>      return priorityExecutor.dispatch(callTask);<a name="line.197"></a>
 <span class="sourceLineNo">198</span>    } else if (replicationExecutor != null &amp;&amp; level == HConstants.REPLICATION_QOS) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      replicationExecutor.dispatch(callTask);<a name="line.199"></a>
+<span class="sourceLineNo">199</span>      return replicationExecutor.dispatch(callTask);<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    } else {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      callExecutor.dispatch(callTask);<a name="line.201"></a>
+<span class="sourceLineNo">201</span>      return callExecutor.dispatch(callTask);<a name="line.201"></a>
 <span class="sourceLineNo">202</span>    }<a name="line.202"></a>
 <span class="sourceLineNo">203</span>  }<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html
index 305bf89..7aeda8d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html
@@ -30,12 +30,12 @@
 <span class="sourceLineNo">022</span>import java.util.List;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.util.TreeSet;<a name="line.23"></a>
 <span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.Cell;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CellComparator;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.KeyValue;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.KeyValueUtil;<a name="line.30"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.Cell;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.CellComparator;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.KeyValue;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.KeyValueUtil;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.30"></a>
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Put;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.io.ImmutableBytesWritable;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import org.apache.hadoop.mapreduce.Reducer;<a name="line.33"></a>
@@ -76,27 +76,29 @@
 <span class="sourceLineNo">068</span>          for (Cell cell: cells) {<a name="line.68"></a>
 <span class="sourceLineNo">069</span>            KeyValue kv = KeyValueUtil.ensureKeyValue(cell);<a name="line.69"></a>
 <span class="sourceLineNo">070</span>            map.add(kv);<a name="line.70"></a>
-<span class="sourceLineNo">071</span>            curSize += kv.heapSize();<a name="line.71"></a>
-<span class="sourceLineNo">072</span>          }<a name="line.72"></a>
-<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      context.setStatus("Read " + map.size() + " entries of " + map.getClass()<a name="line.75"></a>
-<span class="sourceLineNo">076</span>          + "(" + StringUtils.humanReadableInt(curSize) + ")");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      int index = 0;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      for (KeyValue kv : map) {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        context.write(row, kv);<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        if (++index % 100 == 0)<a name="line.80"></a>
-<span class="sourceLineNo">081</span>          context.setStatus("Wrote " + index);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      }<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>      // if we have more entries to process<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      if (iter.hasNext()) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>        // force flush because we cannot guarantee intra-row sorted order<a name="line.86"></a>
-<span class="sourceLineNo">087</span>        context.write(null, null);<a name="line.87"></a>
-<span class="sourceLineNo">088</span>      }<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span>}<a name="line.91"></a>
+<span class="sourceLineNo">071</span>          }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        for(KeyValue kv: map){<a name="line.73"></a>
+<span class="sourceLineNo">074</span>          curSize +=kv.heapSize();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        }<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      context.setStatus("Read " + map.size() + " entries of " + map.getClass()<a name="line.77"></a>
+<span class="sourceLineNo">078</span>          + "(" + StringUtils.humanReadableInt(curSize) + ")");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      int index = 0;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      for (KeyValue kv : map) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        context.write(row, kv);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        if (++index % 100 == 0)<a name="line.82"></a>
+<span class="sourceLineNo">083</span>          context.setStatus("Wrote " + index);<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>      // if we have more entries to process<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      if (iter.hasNext()) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        // force flush because we cannot guarantee intra-row sorted order<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        context.write(null, null);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>}<a name="line.93"></a>
 
 
 

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

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


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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index e46a924..59a212b 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -815,6 +815,7 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.PrefetchRunnable.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">ClientAsyncPrefetchScanner.PrefetchRunnable</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.client.backoff.<a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.html" title="class in org.apache.hadoop.hbase.client.backoff"><span class="strong">ClientBackoffPolicyFactory</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.backoff.<a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.NoBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client.backoff"><span class="strong">ClientBackoffPolicyFactory.NoBackoffPolicy</span></a> (implements org.apache.hadoop.hbase.client.backoff.<a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html" title="interface in org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicy</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.exceptions.<a href="org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">ClientExceptionsUtil</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ClientIdGenerator.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">ClientIdGenerator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ClientSmallScanner.SmallScannerCallableFactory.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">ClientSmallScanner.SmallScannerCallableFactory</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.html" title="class in org.apache.hadoop.hbase.snapshot"><span class="strong">ClientSnapshotDescriptionUtils</span></a></li>
@@ -2977,6 +2978,7 @@
 <li type="circle">org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocatorException.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><span class="strong">BucketAllocatorException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/CacheFullException.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><span class="strong">CacheFullException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/CallerDisconnectedException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">CallerDisconnectedException</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">CallQueueTooBigException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">CallTimeoutException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ClockOutOfSyncException.html" title="class in org.apache.hadoop.hbase"><span class="strong">ClockOutOfSyncException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.exceptions.<a href="org/apache/hadoop/hbase/exceptions/ConnectionClosingException.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">ConnectionClosingException</span></a></li>
@@ -3121,7 +3123,6 @@
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MultiActionResultTooLarge.html" title="class in org.apache.hadoop.hbase"><span class="strong">MultiActionResultTooLarge</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">RpcServer.CallQueueTooBigException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/ServerNotRunningYetException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">ServerNotRunningYetException</span></a></li>
 <li type="circle">java.net.<a href="http://docs.oracle.com/javase/7/docs/api/java/net/SocketException.html?is-external=true" title="class or interface in java.net"><span class="strong">SocketException</span></a>
 <ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/devapidocs/serialized-form.html b/devapidocs/serialized-form.html
index c521746..4c23b06 100644
--- a/devapidocs/serialized-form.html
+++ b/devapidocs/serialized-form.html
@@ -69,6 +69,11 @@
 <li class="blockList">
 <h2 title="Package">Package&nbsp;org.apache.hadoop.hbase</h2>
 <ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.CallQueueTooBigException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">org.apache.hadoop.hbase.CallQueueTooBigException</a> extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.CellComparator">
 <!--   -->
 </a>
@@ -1061,11 +1066,6 @@
 </li>
 </ul>
 </li>
-<li class="blockList"><a name="org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException">
-<!--   -->
-</a>
-<h3>Class <a href="org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException</a> extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
-</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.ipc.ServerNotRunningYetException">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html b/devapidocs/src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html
new file mode 100644
index 0000000..dd0ce43
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html
@@ -0,0 +1,105 @@
+<!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;<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><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>@SuppressWarnings("serial")<a name="line.26"></a>
+<span class="sourceLineNo">027</span>@InterfaceAudience.Public<a name="line.27"></a>
+<span class="sourceLineNo">028</span>@InterfaceStability.Evolving<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class CallQueueTooBigException extends IOException {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  public CallQueueTooBigException() {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    super();<a name="line.31"></a>
+<span class="sourceLineNo">032</span>  }<a name="line.32"></a>
+<span class="sourceLineNo">033</span>}<a name="line.33"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html
index f7bb610..82f0842 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html
@@ -35,7 +35,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Prev Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Listener.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.1189">RpcServer.Connection</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.1183">RpcServer.Connection</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Reads calls from a connection and queues them for handling.</div>
 </li>
@@ -454,7 +454,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>connectionPreambleRead</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1191">connectionPreambleRead</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1185">connectionPreambleRead</a></pre>
 </li>
 </ul>
 <a name="connectionHeaderRead">
@@ -463,7 +463,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>connectionHeaderRead</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1193">connectionHeaderRead</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1187">connectionHeaderRead</a></pre>
 </li>
 </ul>
 <a name="channel">
@@ -472,7 +472,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>channel</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SocketChannel.html?is-external=true" title="class or interface in java.nio.channels">SocketChannel</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1194">channel</a></pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SocketChannel.html?is-external=true" title="class or interface in java.nio.channels">SocketChannel</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1188">channel</a></pre>
 </li>
 </ul>
 <a name="data">
@@ -481,7 +481,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>data</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1195">data</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1189">data</a></pre>
 </li>
 </ul>
 <a name="dataLengthBuffer">
@@ -490,7 +490,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>dataLengthBuffer</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1196">dataLengthBuffer</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1190">dataLengthBuffer</a></pre>
 </li>
 </ul>
 <a name="responseQueue">
@@ -499,7 +499,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>responseQueue</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentLinkedDeque.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentLinkedDeque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1197">responseQueue</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentLinkedDeque.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentLinkedDeque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1191">responseQueue</a></pre>
 </li>
 </ul>
 <a name="responseWriteLock">
@@ -508,7 +508,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>responseWriteLock</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1198">responseWriteLock</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1192">responseWriteLock</a></pre>
 </li>
 </ul>
 <a name="rpcCount">
@@ -517,7 +517,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcCount</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Counter.html" title="class in org.apache.hadoop.hbase.util">Counter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1199">rpcCount</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Counter.html" title="class in org.apache.hadoop.hbase.util">Counter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1193">rpcCount</a></pre>
 </li>
 </ul>
 <a name="lastContact">
@@ -526,7 +526,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>lastContact</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1200">lastContact</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1194">lastContact</a></pre>
 </li>
 </ul>
 <a name="addr">
@@ -535,7 +535,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>addr</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1201">addr</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1195">addr</a></pre>
 </li>
 </ul>
 <a name="socket">
@@ -544,7 +544,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>socket</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1202">socket</a></pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1196">socket</a></pre>
 </li>
 </ul>
 <a name="hostAddress">
@@ -553,7 +553,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hostAddress</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1205">hostAddress</a></pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1199">hostAddress</a></pre>
 </li>
 </ul>
 <a name="remotePort">
@@ -562,7 +562,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>remotePort</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1206">remotePort</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1200">remotePort</a></pre>
 </li>
 </ul>
 <a name="connectionHeader">
@@ -571,7 +571,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>connectionHeader</h4>
-<pre>org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1207">connectionHeader</a></pre>
+<pre>org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1201">connectionHeader</a></pre>
 </li>
 </ul>
 <a name="codec">
@@ -580,7 +580,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>codec</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/codec/Codec.html" title="interface in org.apache.hadoop.hbase.codec">Codec</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1211">codec</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/codec/Codec.html" title="interface in org.apache.hadoop.hbase.codec">Codec</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1205">codec</a></pre>
 <div class="block">Codec the client asked use.</div>
 </li>
 </ul>
@@ -590,7 +590,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>compressionCodec</h4>
-<pre>private&nbsp;org.apache.hadoop.io.compress.CompressionCodec <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1215">compressionCodec</a></pre>
+<pre>private&nbsp;org.apache.hadoop.io.compress.CompressionCodec <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1209">compressionCodec</a></pre>
 <div class="block">Compression codec the client asked us use.</div>
 </li>
 </ul>
@@ -600,7 +600,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>service</h4>
-<pre>com.google.protobuf.BlockingService <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1216">service</a></pre>
+<pre>com.google.protobuf.BlockingService <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1210">service</a></pre>
 </li>
 </ul>
 <a name="authMethod">
@@ -609,7 +609,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>authMethod</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security">AuthMethod</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1218">authMethod</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security">AuthMethod</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1212">authMethod</a></pre>
 </li>
 </ul>
 <a name="saslContextEstablished">
@@ -618,7 +618,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>saslContextEstablished</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1219">saslContextEstablished</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1213">saslContextEstablished</a></pre>
 </li>
 </ul>
 <a name="skipInitialSaslHandshake">
@@ -627,7 +627,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>skipInitialSaslHandshake</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1220">skipInitialSaslHandshake</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1214">skipInitialSaslHandshake</a></pre>
 </li>
 </ul>
 <a name="unwrappedData">
@@ -636,7 +636,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>unwrappedData</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1221">unwrappedData</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1215">unwrappedData</a></pre>
 </li>
 </ul>
 <a name="unwrappedDataLengthBuffer">
@@ -645,7 +645,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>unwrappedDataLengthBuffer</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1223">unwrappedDataLengthBuffer</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1217">unwrappedDataLengthBuffer</a></pre>
 </li>
 </ul>
 <a name="useSasl">
@@ -654,7 +654,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>useSasl</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1224">useSasl</a></pre>
+<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1218">useSasl</a></pre>
 </li>
 </ul>
 <a name="saslServer">
@@ -663,7 +663,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>saslServer</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/javax/security/sasl/SaslServer.html?is-external=true" title="class or interface in javax.security.sasl">SaslServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1225">saslServer</a></pre>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/javax/security/sasl/SaslServer.html?is-external=true" title="class or interface in javax.security.sasl">SaslServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1219">saslServer</a></pre>
 </li>
 </ul>
 <a name="useWrap">
@@ -672,7 +672,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>useWrap</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1226">useWrap</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1220">useWrap</a></pre>
 </li>
 </ul>
 <a name="AUTHORIZATION_FAILED_CALLID">
@@ -681,7 +681,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>AUTHORIZATION_FAILED_CALLID</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1228">AUTHORIZATION_FAILED_CALLID</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1222">AUTHORIZATION_FAILED_CALLID</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.Connection.AUTHORIZATION_FAILED_CALLID">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -691,7 +691,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>authFailedCall</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1229">authFailedCall</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1223">authFailedCall</a></pre>
 </li>
 </ul>
 <a name="authFailedResponse">
@@ -700,7 +700,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>authFailedResponse</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayOutputStream.html?is-external=true" title="class or interface in java.io">ByteArrayOutputStream</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1231">authFailedResponse</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayOutputStream.html?is-external=true" title="class or interface in java.io">ByteArrayOutputStream</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1225">authFailedResponse</a></pre>
 </li>
 </ul>
 <a name="SASL_CALLID">
@@ -709,7 +709,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>SASL_CALLID</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1234">SASL_CALLID</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1228">SASL_CALLID</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.Connection.SASL_CALLID">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -719,7 +719,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>saslCall</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1235">saslCall</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1229">saslCall</a></pre>
 </li>
 </ul>
 <a name="authenticatedWithFallback">
@@ -728,7 +728,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>authenticatedWithFallback</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1239">authenticatedWithFallback</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1233">authenticatedWithFallback</a></pre>
 </li>
 </ul>
 <a name="retryImmediatelySupported">
@@ -737,7 +737,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>retryImmediatelySupported</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1241">retryImmediatelySupported</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1235">retryImmediatelySupported</a></pre>
 </li>
 </ul>
 <a name="attemptingUser">
@@ -746,7 +746,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>attemptingUser</h4>
-<pre>public&nbsp;org.apache.hadoop.security.UserGroupInformation <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1243">attemptingUser</a></pre>
+<pre>public&nbsp;org.apache.hadoop.security.UserGroupInformation <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1237">attemptingUser</a></pre>
 </li>
 </ul>
 <a name="user">
@@ -755,7 +755,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>user</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1244">user</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1238">user</a></pre>
 </li>
 </ul>
 <a name="ugi">
@@ -764,7 +764,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ugi</h4>
-<pre>protected&nbsp;org.apache.hadoop.security.UserGroupInformation <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1245">ugi</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.security.UserGroupInformation <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1239">ugi</a></pre>
 </li>
 </ul>
 </li>
@@ -781,7 +781,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RpcServer.Connection</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1247">RpcServer.Connection</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SocketChannel.html?is-external=true" title="class or interface in java.nio.channels">SocketChannel</a>&nbsp;channel,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1241">RpcServer.Connection</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SocketChannel.html?is-external=true" title="class or interface in java.nio.channels">SocketChannel</a>&nbsp;channel,
                     long&nbsp;lastContact)</pre>
 </li>
 </ul>
@@ -799,7 +799,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1271">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1265">toString</a>()</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -812,7 +812,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getHostAddress</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1275">getHostAddress</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1269">getHostAddress</a>()</pre>
 </li>
 </ul>
 <a name="getHostInetAddress()">
@@ -821,7 +821,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getHostInetAddress</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1279">getHostInetAddress</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1273">getHostInetAddress</a>()</pre>
 </li>
 </ul>
 <a name="getRemotePort()">
@@ -830,7 +830,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemotePort</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1283">getRemotePort</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1277">getRemotePort</a>()</pre>
 </li>
 </ul>
 <a name="setLastContact(long)">
@@ -839,7 +839,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setLastContact</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1287">setLastContact</a>(long&nbsp;lastContact)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1281">setLastContact</a>(long&nbsp;lastContact)</pre>
 </li>
 </ul>
 <a name="getVersionInfo()">
@@ -848,7 +848,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getVersionInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1291">getVersionInfo</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1285">getVersionInfo</a>()</pre>
 </li>
 </ul>
 <a name="isIdle()">
@@ -857,7 +857,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isIdle</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1299">isIdle</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1293">isIdle</a>()</pre>
 </li>
 </ul>
 <a name="decRpcCount()">
@@ -866,7 +866,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>decRpcCount</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1304">decRpcCount</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1298">decRpcCount</a>()</pre>
 </li>
 </ul>
 <a name="incRpcCount()">
@@ -875,7 +875,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>incRpcCount</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1309">incRpcCount</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1303">incRpcCount</a>()</pre>
 </li>
 </ul>
 <a name="timedOut(long)">
@@ -884,7 +884,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>timedOut</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1313">timedOut</a>(long&nbsp;currentTime)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1307">timedOut</a>(long&nbsp;currentTime)</pre>
 </li>
 </ul>
 <a name="getAuthorizedUgi(java.lang.String)">
@@ -893,7 +893,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getAuthorizedUgi</h4>
-<pre>private&nbsp;org.apache.hadoop.security.UserGroupInformation&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1317">getAuthorizedUgi</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authorizedId)
+<pre>private&nbsp;org.apache.hadoop.security.UserGroupInformation&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1311">getAuthorizedUgi</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;authorizedId)
                                                                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -905,7 +905,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>saslReadAndProcess</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1336">saslReadAndProcess</a>(byte[]&nbsp;saslToken)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1330">saslReadAndProcess</a>(byte[]&nbsp;saslToken)
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -919,7 +919,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doRawSaslReply</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1444">doRawSaslReply</a>(<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security">SaslStatus</a>&nbsp;status,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1438">doRawSaslReply</a>(<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security">SaslStatus</a>&nbsp;status,
                   org.apache.hadoop.io.Writable&nbsp;rv,
                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;errorClass,
                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;error)
@@ -935,7 +935,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>disposeSasl</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1473">disposeSasl</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1467">disposeSasl</a>()</pre>
 </li>
 </ul>
 <a name="readPreamble()">
@@ -944,7 +944,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readPreamble</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1484">readPreamble</a>()
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1478">readPreamble</a>()
                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -956,7 +956,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>read4Bytes</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1540">read4Bytes</a>()
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1534">read4Bytes</a>()
                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -968,7 +968,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readAndProcess</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1556">readAndProcess</a>()
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1550">readAndProcess</a>()
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Read off the wire. If there is not enough data to read, update the connection state with
@@ -985,7 +985,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>process</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1614">process</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1608">process</a>()
               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Process the data buffer and clean the connection state for the next call.</div>
@@ -1000,7 +1000,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getFatalConnectionString</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1634">getFatalConnectionString</a>(int&nbsp;version,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1628">getFatalConnectionString</a>(int&nbsp;version,
                               byte&nbsp;authByte)</pre>
 </li>
 </ul>
@@ -1010,7 +1010,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doBadPreambleHandling</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1640">doBadPreambleHandling</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1634">doBadPreambleHandling</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1022,7 +1022,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doBadPreambleHandling</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1644">doBadPreambleHandling</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1638">doBadPreambleHandling</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg,
                         <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e)
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1035,7 +1035,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>processConnectionHeader</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1654">processConnectionHeader</a>(byte[]&nbsp;buf)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1648">processConnectionHeader</a>(byte[]&nbsp;buf)
                               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1047,7 +1047,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setupCellBlockCodecs</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1717">setupCellBlockCodecs</a>(org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader&nbsp;header)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1711">setupCellBlockCodecs</a>(org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader&nbsp;header)
                            throws <a href="../../../../../org/apache/hadoop/hbase/ipc/FatalConnectionException.html" title="class in org.apache.hadoop.hbase.ipc">FatalConnectionException</a></pre>
 <div class="block">Set up cell block codecs</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1060,7 +1060,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>processUnwrappedData</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1737">processUnwrappedData</a>(byte[]&nbsp;inBuf)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1731">processUnwrappedData</a>(byte[]&nbsp;inBuf)
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1074,7 +1074,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>processOneRpc</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1775">processOneRpc</a>(byte[]&nbsp;buf)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1769">processOneRpc</a>(byte[]&nbsp;buf)
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1088,7 +1088,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>processRequest</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1797">processRequest</a>(byte[]&nbsp;buf)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1791">processRequest</a>(byte[]&nbsp;buf)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>buf</code> - Has the request header and the request param and optionally encoded data buffer
@@ -1104,7 +1104,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>authorizeConnection</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1886">authorizeConnection</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1891">authorizeConnection</a>()
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1116,7 +1116,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1911">close</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1916">close</a>()</pre>
 </li>
 </ul>
 <a name="createUser(org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader)">
@@ -1125,7 +1125,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createUser</h4>
-<pre>private&nbsp;org.apache.hadoop.security.UserGroupInformation&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1923">createUser</a>(org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader&nbsp;head)</pre>
+<pre>private&nbsp;org.apache.hadoop.security.UserGroupInformation&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#line.1928">createUser</a>(org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader&nbsp;head)</pre>
 </li>
 </ul>
 </li>
@@ -1154,7 +1154,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Prev Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Listener.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html
index 557bcf7..357130d 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.604">RpcServer.Listener.Reader</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.605">RpcServer.Listener.Reader</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
 </li>
@@ -215,7 +215,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>adding</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.605">adding</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.606">adding</a></pre>
 </li>
 </ul>
 <a name="readSelector">
@@ -224,7 +224,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>readSelector</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/Selector.html?is-external=true" title="class or interface in java.nio.channels">Selector</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.606">readSelector</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/Selector.html?is-external=true" title="class or interface in java.nio.channels">Selector</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.607">readSelector</a></pre>
 </li>
 </ul>
 </li>
@@ -241,7 +241,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RpcServer.Listener.Reader</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.608">RpcServer.Listener.Reader</a>()
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.609">RpcServer.Listener.Reader</a>()
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -261,7 +261,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.612">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.613">run</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -274,7 +274,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>doRunLoop</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.624">doRunLoop</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.625">doRunLoop</a>()</pre>
 </li>
 </ul>
 <a name="startAdd()">
@@ -283,7 +283,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>startAdd</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.658">startAdd</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.659">startAdd</a>()</pre>
 <div class="block">This gets reader into the state that waits for the new channel
  to be registered with readSelector. If it was waiting in select()
  the thread will be woken up, otherwise whenever select() is called
@@ -297,7 +297,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>registerChannel</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html?is-external=true" title="class or interface in java.nio.channels">SelectionKey</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.663">registerChannel</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SocketChannel.html?is-external=true" title="class or interface in java.nio.channels">SocketChannel</a>&nbsp;channel)
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html?is-external=true" title="class or interface in java.nio.channels">SelectionKey</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.664">registerChannel</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SocketChannel.html?is-external=true" title="class or interface in java.nio.channels">SocketChannel</a>&nbsp;channel)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -309,7 +309,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>finishAdd</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.668">finishAdd</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html#line.669">finishAdd</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html
index 7fef12a..207ec91 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.556">RpcServer.Listener</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.557">RpcServer.Listener</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></pre>
 <div class="block">Listens on the socket. Creates jobs for the handler threads</div>
 </li>
@@ -300,7 +300,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>acceptChannel</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/ServerSocketChannel.html?is-external=true" title="class or interface in java.nio.channels">ServerSocketChannel</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.558">acceptChannel</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/ServerSocketChannel.html?is-external=true" title="class or interface in java.nio.channels">ServerSocketChannel</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.559">acceptChannel</a></pre>
 </li>
 </ul>
 <a name="selector">
@@ -309,7 +309,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>selector</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/Selector.html?is-external=true" title="class or interface in java.nio.channels">Selector</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.559">selector</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/Selector.html?is-external=true" title="class or interface in java.nio.channels">Selector</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.560">selector</a></pre>
 </li>
 </ul>
 <a name="readers">
@@ -318,7 +318,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readers</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Listener.Reader</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.560">readers</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Listener.Reader</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.561">readers</a></pre>
 </li>
 </ul>
 <a name="currentReader">
@@ -327,7 +327,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>currentReader</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.561">currentReader</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.562">currentReader</a></pre>
 </li>
 </ul>
 <a name="rand">
@@ -336,7 +336,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rand</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Random.html?is-external=true" title="class or interface in java.util">Random</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.562">rand</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Random.html?is-external=true" title="class or interface in java.util">Random</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.563">rand</a></pre>
 </li>
 </ul>
 <a name="lastCleanupRunTime">
@@ -345,7 +345,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>lastCleanupRunTime</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.563">lastCleanupRunTime</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.564">lastCleanupRunTime</a></pre>
 </li>
 </ul>
 <a name="cleanupInterval">
@@ -354,7 +354,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupInterval</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.565">cleanupInterval</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.566">cleanupInterval</a></pre>
 </li>
 </ul>
 <a name="backlogLength">
@@ -363,7 +363,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>backlogLength</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.567">backlogLength</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.568">backlogLength</a></pre>
 </li>
 </ul>
 <a name="readPool">
@@ -372,7 +372,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>readPool</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.569">readPool</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.570">readPool</a></pre>
 </li>
 </ul>
 </li>
@@ -389,7 +389,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RpcServer.Listener</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.571">RpcServer.Listener</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.572">RpcServer.Listener</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -409,7 +409,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupConnections</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.681">cleanupConnections</a>(boolean&nbsp;force)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.682">cleanupConnections</a>(boolean&nbsp;force)</pre>
 <div class="block">cleanup connections from connectionList. Choose a random range
  to scan and also have a limit on the number of the connections
  that will be cleanedup per run. The criteria for cleanup is the time
@@ -424,7 +424,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.728">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.729">run</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -439,7 +439,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>closeCurrentConnection</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.796">closeCurrentConnection</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html?is-external=true" title="class or interface in java.nio.channels">SelectionKey</a>&nbsp;key,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.797">closeCurrentConnection</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html?is-external=true" title="class or interface in java.nio.channels">SelectionKey</a>&nbsp;key,
                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
 </li>
 </ul>
@@ -449,7 +449,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getAddress</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.810">getAddress</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.811">getAddress</a>()</pre>
 </li>
 </ul>
 <a name="doAccept(java.nio.channels.SelectionKey)">
@@ -458,7 +458,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doAccept</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.814">doAccept</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html?is-external=true" title="class or interface in java.nio.channels">SelectionKey</a>&nbsp;key)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.815">doAccept</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html?is-external=true" title="class or interface in java.nio.channels">SelectionKey</a>&nbsp;key)
         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/OutOfMemoryError.html?is-external=true" title="class or interface in java.lang">OutOfMemoryError</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -472,7 +472,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doRead</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.848">doRead</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html?is-external=true" title="class or interface in java.nio.channels">SelectionKey</a>&nbsp;key)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.849">doRead</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html?is-external=true" title="class or interface in java.nio.channels">SelectionKey</a>&nbsp;key)
       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd></dl>
@@ -484,7 +484,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doStop</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.880">doStop</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.881">doStop</a>()</pre>
 </li>
 </ul>
 <a name="getReader()">
@@ -493,7 +493,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getReader</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Listener.Reader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.897">getReader</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Listener.Reader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html#line.898">getReader</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html
index de847e1..f4573ad 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.904">RpcServer.Responder</a>
+<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.905">RpcServer.Responder</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></pre>
 </li>
 </ul>
@@ -273,7 +273,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>writeSelector</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/Selector.html?is-external=true" title="class or interface in java.nio.channels">Selector</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.905">writeSelector</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/Selector.html?is-external=true" title="class or interface in java.nio.channels">Selector</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.906">writeSelector</a></pre>
 </li>
 </ul>
 <a name="writingCons">
@@ -282,7 +282,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>writingCons</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.906">writingCons</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.907">writingCons</a></pre>
 </li>
 </ul>
 </li>
@@ -299,7 +299,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RpcServer.Responder</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.909">RpcServer.Responder</a>()
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.910">RpcServer.Responder</a>()
               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -319,7 +319,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.916">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.917">run</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -334,7 +334,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>registerWrites</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.934">registerWrites</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.935">registerWrites</a>()</pre>
 <div class="block">Take the list of the connections that want to write, and register them
  in the selector.</div>
 </li>
@@ -345,7 +345,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>registerForWrite</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.961">registerForWrite</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&nbsp;c)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.962">registerForWrite</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&nbsp;c)</pre>
 <div class="block">Add a connection to the list that want to write,</div>
 </li>
 </ul>
@@ -355,7 +355,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doRunLoop</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.967">doRunLoop</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.968">doRunLoop</a>()</pre>
 </li>
 </ul>
 <a name="purge(long)">
@@ -364,7 +364,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>purge</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.1026">purge</a>(long&nbsp;lastPurgeTime)</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.1027">purge</a>(long&nbsp;lastPurgeTime)</pre>
 <div class="block">If there were some calls that have not been sent out for a
  long time, we close the connection.</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>the time of the purge.</dd></dl>
@@ -376,7 +376,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doAsyncWrite</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.1055">doAsyncWrite</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html?is-external=true" title="class or interface in java.nio.channels">SelectionKey</a>&nbsp;key)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.1056">doAsyncWrite</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SelectionKey.html?is-external=true" title="class or interface in java.nio.channels">SelectionKey</a>&nbsp;key)
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -388,7 +388,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>processResponse</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.1088">processResponse</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a>&nbsp;call)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.1089">processResponse</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a>&nbsp;call)
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Process the response for this call. You need to have the lock on
  <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html#responseWriteLock"><code>RpcServer.Connection.responseWriteLock</code></a></div>
@@ -404,7 +404,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>processAllResponses</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.1121">processAllResponses</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&nbsp;connection)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.1122">processAllResponses</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&nbsp;connection)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Process all the responses for this connection</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>true if all the calls were processed or that someone else is doing it.
@@ -420,7 +420,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>doRespond</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.1146">doRespond</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a>&nbsp;call)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Responder.html#line.1147">doRespond</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a>&nbsp;call)
          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html
index 047fe1f..3255d2e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.132">TestAsyncProcess.MyAsyncProcess</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.133">TestAsyncProcess.MyAsyncProcess</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -428,7 +428,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>nbMultiResponse</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.133">nbMultiResponse</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.134">nbMultiResponse</a></pre>
 </li>
 </ul>
 <a name="nbActions">
@@ -437,7 +437,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>nbActions</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.134">nbActions</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.135">nbActions</a></pre>
 </li>
 </ul>
 <a name="allReqs">
@@ -446,7 +446,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>allReqs</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.135">allReqs</a></pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.136">allReqs</a></pre>
 </li>
 </ul>
 <a name="callsCt">
@@ -455,7 +455,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>callsCt</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.136">callsCt</a></pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.137">callsCt</a></pre>
 </li>
 </ul>
 <a name="COUNTER">
@@ -664,7 +664,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TestAsyncProcess.MyAsyncProcess</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.149">TestAsyncProcess.MyAsyncProcess</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.150">TestAsyncProcess.MyAsyncProcess</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
                                org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
@@ -674,7 +674,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TestAsyncProcess.MyAsyncProcess</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.153">TestAsyncProcess.MyAsyncProcess</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.154">TestAsyncProcess.MyAsyncProcess</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
                                org.apache.hadoop.conf.Configuration&nbsp;conf,
                                <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&nbsp;nbThreads)</pre>
 </li>
@@ -685,7 +685,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TestAsyncProcess.MyAsyncProcess</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.159">TestAsyncProcess.MyAsyncProcess</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.160">TestAsyncProcess.MyAsyncProcess</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
                                org.apache.hadoop.conf.Configuration&nbsp;conf,
                                boolean&nbsp;useGlobalErrors)</pre>
 </li>
@@ -696,7 +696,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess.MyAsyncProcess</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.166">TestAsyncProcess.MyAsyncProcess</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.167">TestAsyncProcess.MyAsyncProcess</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
                                org.apache.hadoop.conf.Configuration&nbsp;conf,
                                boolean&nbsp;useGlobalErrors,
                                boolean&nbsp;dummy)</pre>
@@ -716,7 +716,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createAsyncRequestFuture</h4>
-<pre>protected&nbsp;&lt;Res&gt;&nbsp;org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFutureImpl&lt;Res&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.139">createAsyncRequestFuture</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+<pre>protected&nbsp;&lt;Res&gt;&nbsp;org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFutureImpl&lt;Res&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.140">createAsyncRequestFuture</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
                                                                                                      <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.client.Action&lt;org.apache.hadoop.hbase.client.Row&gt;&gt;&nbsp;actions,
                                                                                                      long&nbsp;nonceGroup,
                                                                                                      <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
@@ -731,7 +731,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>submit</h4>
-<pre>public&nbsp;&lt;Res&gt;&nbsp;org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.179">submit</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+<pre>public&nbsp;&lt;Res&gt;&nbsp;org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.180">submit</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
                                                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;rows,
                                                                           boolean&nbsp;atLeastOne,
                                                                           org.apache.hadoop.hbase.client.coprocessor.Batch.Callback&lt;Res&gt;&nbsp;callback,
@@ -747,7 +747,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createCaller</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.client.RpcRetryingCaller&lt;org.apache.hadoop.hbase.client.MultiResponse&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.187">createCaller</a>(org.apache.hadoop.hbase.client.MultiServerCallable&lt;org.apache.hadoop.hbase.client.Row&gt;&nbsp;callable)</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.client.RpcRetryingCaller&lt;org.apache.hadoop.hbase.client.MultiResponse&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#line.188">createCaller</a>(org.apache.hadoop.hbase.client.MultiServerCallable&lt;org.apache.hadoop.hbase.client.Row&gt;&nbsp;callable)</pre>
 </li>
 </ul>
 <a name="submit(java.util.concurrent.ExecutorService, org.apache.hadoop.hbase.TableName, java.util.List, boolean, org.apache.hadoop.hbase.client.coprocessor.Batch.Callback, boolean)">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html
index c7e61d8..71daceb 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html
@@ -104,7 +104,7 @@
 </dl>
 <hr>
 <br>
-<pre> class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.246">TestAsyncProcess.MyAsyncProcessWithReplicas</a>
+<pre> class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.254">TestAsyncProcess.MyAsyncProcessWithReplicas</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcess</a></pre>
 </li>
 </ul>
@@ -431,7 +431,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>failures</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.247">failures</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.255">failures</a></pre>
 </li>
 </ul>
 <a name="primarySleepMs">
@@ -440,7 +440,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>primarySleepMs</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.248">primarySleepMs</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.256">primarySleepMs</a></pre>
 </li>
 </ul>
 <a name="replicaSleepMs">
@@ -449,7 +449,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>replicaSleepMs</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.248">replicaSleepMs</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.256">replicaSleepMs</a></pre>
 </li>
 </ul>
 <a name="customPrimarySleepMs">
@@ -458,7 +458,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>customPrimarySleepMs</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.249">customPrimarySleepMs</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.257">customPrimarySleepMs</a></pre>
 </li>
 </ul>
 <a name="replicaCalls">
@@ -467,7 +467,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>replicaCalls</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.250">replicaCalls</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.258">replicaCalls</a></pre>
 </li>
 </ul>
 <a name="COUNTER">
@@ -676,7 +676,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess.MyAsyncProcessWithReplicas</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.266">TestAsyncProcess.MyAsyncProcessWithReplicas</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.274">TestAsyncProcess.MyAsyncProcessWithReplicas</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
                                            org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
@@ -694,7 +694,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>addFailures</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.252">addFailures</a>(org.apache.hadoop.hbase.HRegionInfo...&nbsp;hris)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.260">addFailures</a>(org.apache.hadoop.hbase.HRegionInfo...&nbsp;hris)</pre>
 </li>
 </ul>
 <a name="getReplicaCallCount()">
@@ -703,7 +703,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicaCallCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.258">getReplicaCallCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.266">getReplicaCallCount</a>()</pre>
 </li>
 </ul>
 <a name="setPrimaryCallDelay(org.apache.hadoop.hbase.ServerName, long)">
@@ -712,7 +712,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>setPrimaryCallDelay</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.262">setPrimaryCallDelay</a>(org.apache.hadoop.hbase.ServerName&nbsp;server,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.270">setPrimaryCallDelay</a>(org.apache.hadoop.hbase.ServerName&nbsp;server,
                        long&nbsp;primaryMs)</pre>
 </li>
 </ul>
@@ -722,7 +722,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>setCallDelays</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.270">setCallDelays</a>(long&nbsp;primaryMs,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.278">setCallDelays</a>(long&nbsp;primaryMs,
                  long&nbsp;replicaMs)</pre>
 </li>
 </ul>
@@ -732,7 +732,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>createCaller</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.client.RpcRetryingCaller&lt;org.apache.hadoop.hbase.client.MultiResponse&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.276">createCaller</a>(org.apache.hadoop.hbase.client.MultiServerCallable&lt;org.apache.hadoop.hbase.client.Row&gt;&nbsp;callable)</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.client.RpcRetryingCaller&lt;org.apache.hadoop.hbase.client.MultiResponse&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html#line.284">createCaller</a>(org.apache.hadoop.hbase.client.MultiServerCallable&lt;org.apache.hadoop.hbase.client.Row&gt;&nbsp;callable)</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html#createCaller(org.apache.hadoop.hbase.client.MultiServerCallable)">createCaller</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcess</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html
index aef26f3..9f9d99e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#line.350">TestAsyncProcess.MyConnectionImpl.TestRegistry</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#line.358">TestAsyncProcess.MyConnectionImpl.TestRegistry</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -180,7 +180,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess.MyConnectionImpl.TestRegistry</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html#line.350">TestAsyncProcess.MyConnectionImpl.TestRegistry</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html#line.358">TestAsyncProcess.MyConnectionImpl.TestRegistry</a>()</pre>
 </li>
 </ul>
 </li>
@@ -197,7 +197,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>init</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html#line.352">init</a>(org.apache.hadoop.hbase.client.Connection&nbsp;connection)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html#line.360">init</a>(org.apache.hadoop.hbase.client.Connection&nbsp;connection)</pre>
 </li>
 </ul>
 <a name="getMetaRegionLocation()">
@@ -206,7 +206,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionLocation</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.RegionLocations&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html#line.355">getMetaRegionLocation</a>()
+<pre>public&nbsp;org.apache.hadoop.hbase.RegionLocations&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html#line.363">getMetaRegionLocation</a>()
                                                               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -218,7 +218,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterId</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html#line.360">getClusterId</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html#line.368">getClusterId</a>()</pre>
 </li>
 </ul>
 <a name="getCurrentNrHRS()">
@@ -227,7 +227,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getCurrentNrHRS</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html#line.365">getCurrentNrHRS</a>()
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html#line.373">getCurrentNrHRS</a>()
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html
index 1baec40..ca56b38 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html
@@ -107,7 +107,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.349">TestAsyncProcess.MyConnectionImpl</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.357">TestAsyncProcess.MyConnectionImpl</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Returns our async process.</div>
 </li>
@@ -287,286 +287,282 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#finalize()">finalize</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#findException(java.lang.Object)">findException</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg0)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.Admin</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getAdmin()">getAdmin</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getAdmin(org.apache.hadoop.hbase.ServerName)">getAdmin</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getAdmin(org.apache.hadoop.hbase.ServerName,%20boolean)">getAdmin</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0,
                 boolean&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.AsyncProcess</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getAsyncProcess()">getAsyncProcess</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getBackoffPolicy()">getBackoffPolicy</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.BufferedMutator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getBufferedMutator(org.apache.hadoop.hbase.client.BufferedMutatorParams)">getBufferedMutator</a></strong>(org.apache.hadoop.hbase.client.BufferedMutatorParams&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.BufferedMutator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getBufferedMutator(org.apache.hadoop.hbase.TableName)">getBufferedMutator</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getCachedLocation(org.apache.hadoop.hbase.TableName,%20byte[])">getCachedLocation</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                   byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ClientService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getClient(org.apache.hadoop.hbase.ServerName)">getClient</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getConfiguration()">getConfiguration</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.MetricsConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getConnectionMetrics()">getConnectionMetrics</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getCurrentBatchPool()">getCurrentBatchPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getCurrentMetaLookupPool()">getCurrentMetaLookupPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getCurrentNrHRS()">getCurrentNrHRS</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getHTableDescriptor(byte[])">getHTableDescriptor</a></strong>(byte[]&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getHTableDescriptor(org.apache.hadoop.hbase.TableName)">getHTableDescriptor</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getHTableDescriptors(java.util.List)">getHTableDescriptors</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getHTableDescriptorsByTableName(java.util.List)">getHTableDescriptorsByTableName</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.TableName&gt;&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.MasterKeepAliveConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getKeepAliveMasterService()">getKeepAliveMasterService</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.client.ZooKeeperKeepAliveConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getKeepAliveZooKeeperWatcher()">getKeepAliveZooKeeperWatcher</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getMaster()">getMaster</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.RpcRetryingCallerFactory</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration)">getNewRpcRetryingCallerFactory</a></strong>(org.apache.hadoop.conf.Configuration&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.NonceGenerator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getNonceGenerator()">getNonceGenerator</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getNumberOfCachedRegionLocations(org.apache.hadoop.hbase.TableName)">getNumberOfCachedRegionLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getRegionCachePrefetch(byte[])">getRegionCachePrefetch</a></strong>(byte[]&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getRegionCachePrefetch(org.apache.hadoop.hbase.TableName)">getRegionCachePrefetch</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getRegionLocation(byte[],%20byte[],%20boolean)">getRegionLocation</a></strong>(byte[]&nbsp;arg0,
                                   byte[]&nbsp;arg1,
                                   boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getRegionLocation(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean)">getRegionLocation</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                   byte[]&nbsp;arg1,
                                   boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.RegionLocator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getRegionLocator(org.apache.hadoop.hbase.TableName)">getRegionLocator</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.ipc.RpcClient</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getRpcClient()">getRpcClient</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.ServerStatisticTracker</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getStatisticsTracker()">getStatisticsTracker</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getStubKey(java.lang.String,%20java.lang.String,%20int,%20boolean)">getStubKey</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0,
                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg1,
                     int&nbsp;arg2,
                     boolean&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getTable(byte[])">getTable</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getTable(byte[],%20java.util.concurrent.ExecutorService)">getTable</a></strong>(byte[]&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getTable(java.lang.String)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getTable(java.lang.String,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getTable(org.apache.hadoop.hbase.TableName)">getTable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getTable(org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getTableNames()">getTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.TableState</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#getTableState(org.apache.hadoop.hbase.TableName)">getTableState</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static org.apache.hadoop.hbase.client.NonceGenerator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#injectNonceGeneratorForTesting(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.hbase.client.NonceGenerator)">injectNonceGeneratorForTesting</a></strong>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;arg0,
                                                             org.apache.hadoop.hbase.client.NonceGenerator&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isAborted()">isAborted</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isClosed()">isClosed</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isDeadServer(org.apache.hadoop.hbase.ServerName)">isDeadServer</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isMasterRunning()">isMasterRunning</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isTableAvailable(byte[])">isTableAvailable</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isTableAvailable(byte[],%20byte[][])">isTableAvailable</a></strong>(byte[]&nbsp;arg0,
                                 byte[][]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isTableAvailable(org.apache.hadoop.hbase.TableName)">isTableAvailable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isTableAvailable(org.apache.hadoop.hbase.TableName,%20byte[][])">isTableAvailable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                 byte[][]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isTableDisabled(byte[])">isTableDisabled</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isTableDisabled(org.apache.hadoop.hbase.TableName)">isTableDisabled</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isTableEnabled(byte[])">isTableEnabled</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#isTableEnabled(org.apache.hadoop.hbase.TableName)">isTableEnabled</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.TableName[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#listTableNames()">listTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#listTables()">listTables</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#locateRegion(byte[])">locateRegion</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#locateRegion(byte[],%20byte[])">locateRegion</a></strong>(byte[]&nbsp;arg0,
                         byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean)">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1,
                         boolean&nbsp;arg2,
                         boolean&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
                         byte[]&nbsp;row,
@@ -574,27 +570,27 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                         boolean&nbsp;retry,
                         int&nbsp;replicaId)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#locateRegions(byte[])">locateRegions</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#locateRegions(byte[],%20boolean,%20boolean)">locateRegions</a></strong>(byte[]&nbsp;arg0,
                           boolean&nbsp;arg1,
                           boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#locateRegions(org.apache.hadoop.hbase.TableName)">locateRegions</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#locateRegions(org.apache.hadoop.hbase.TableName,%20boolean,%20boolean)">locateRegions</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                           boolean&nbsp;arg1,
                           boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#processBatch(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                         byte[]&nbsp;arg1,
@@ -603,7 +599,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                         org.apache.hadoop.hbase.TableName&nbsp;arg1,
@@ -612,7 +608,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#processBatchCallback(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                                         byte[]&nbsp;arg1,
@@ -622,7 +618,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#processBatchCallback(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                                         org.apache.hadoop.hbase.TableName&nbsp;arg1,
@@ -632,71 +628,71 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#releaseMaster(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">releaseMaster</a></strong>(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#releaseZooKeeperWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">releaseZooKeeperWatcher</a></strong>(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#relocateRegion(byte[],%20byte[])">relocateRegion</a></strong>(byte[]&nbsp;arg0,
                             byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">relocateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                             byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20int)">relocateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                             byte[]&nbsp;arg1,
                             int&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#retrieveClusterId()">retrieveClusterId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#setRegionCachePrefetch(byte[],%20boolean)">setRegionCachePrefetch</a></strong>(byte[]&nbsp;arg0,
                                             boolean&nbsp;arg1)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#setRegionCachePrefetch(org.apache.hadoop.hbase.TableName,%20boolean)">setRegionCachePrefetch</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                             boolean&nbsp;arg1)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#setupConf(org.apache.hadoop.conf.Configuration)">setupConf</a></strong>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#toString()">toString</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#updateCachedLocation(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName,%20long)">updateCachedLocation</a></strong>(org.apache.hadoop.hbase.HRegionInfo&nbsp;arg0,
                                         org.apache.hadoop.hbase.ServerName&nbsp;arg1,
                                         org.apache.hadoop.hbase.ServerName&nbsp;arg2,
                                         long&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#updateCachedLocations(byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(byte[]&nbsp;arg0,
                                           byte[]&nbsp;arg1,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg2,
                                           org.apache.hadoop.hbase.HRegionLocation&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.ServerName)">updateCachedLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                           byte[]&nbsp;arg1,
@@ -704,7 +700,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg3,
                                           org.apache.hadoop.hbase.ServerName&nbsp;arg4)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                           byte[]&nbsp;arg1,
@@ -739,7 +735,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>nbThreads</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#line.370">nbThreads</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#line.378">nbThreads</a></pre>
 </li>
 </ul>
 <a name="RETRIES_BY_SERVER_KEY">
@@ -820,7 +816,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess.MyConnectionImpl</h4>
-<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#line.372">TestAsyncProcess.MyConnectionImpl</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#line.380">TestAsyncProcess.MyConnectionImpl</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -840,7 +836,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setupConf</h4>
-<pre>private static&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#line.376">setupConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>private static&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#line.384">setupConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="locateRegion(org.apache.hadoop.hbase.TableName, byte[], boolean, boolean, int)">
@@ -849,7 +845,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>locateRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.RegionLocations&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#line.382">locateRegion</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+<pre>public&nbsp;org.apache.hadoop.hbase.RegionLocations&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html#line.390">locateRegion</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
                                                    byte[]&nbsp;row,
                                                    boolean&nbsp;useCache,
                                                    boolean&nbsp;retry,
@@ -872,15 +868,6 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                                                                            org.apache.hadoop.hbase.client.NonceGenerator&nbsp;arg1)</pre>
 </li>
 </ul>
-<a name="findException(java.lang.Object)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>findException</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.0">findException</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg0)</pre>
-</li>
-</ul>
 <a name="getTable(java.lang.String)">
 <!--   -->
 </a>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html
index 02eb12c..104ec8d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html
@@ -53,1051 +53,1080 @@
 <span class="sourceLineNo">045</span>import org.apache.commons.logging.Log;<a name="line.45"></a>
 <span class="sourceLineNo">046</span>import org.apache.commons.logging.LogFactory;<a name="line.46"></a>
 <span class="sourceLineNo">047</span>import org.apache.hadoop.conf.Configuration;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.CategoryBasedTimeout;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.Cell;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.HConstants;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.TableName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.coprocessor.Batch.Callback;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.junit.Assert;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.junit.BeforeClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.junit.Rule;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.junit.Test;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.junit.experimental.categories.Category;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.junit.rules.TestRule;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.mockito.Mockito;<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>@Category({ClientTests.class, MediumTests.class})<a name="line.72"></a>
-<span class="sourceLineNo">073</span>public class TestAsyncProcess {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Rule public final TestRule timeout = CategoryBasedTimeout.builder().withTimeout(this.getClass()).<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      withLookingForStuckThread(true).build();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private final static Log LOG = LogFactory.getLog(TestAsyncProcess.class);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final TableName DUMMY_TABLE =<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      TableName.valueOf("DUMMY_TABLE");<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private static final byte[] DUMMY_BYTES_1 = "DUMMY_BYTES_1".getBytes();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static final byte[] DUMMY_BYTES_2 = "DUMMY_BYTES_2".getBytes();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private static final byte[] DUMMY_BYTES_3 = "DUMMY_BYTES_3".getBytes();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private static final byte[] FAILS = "FAILS".getBytes();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private static final Configuration conf = new Configuration();<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private static ServerName sn = ServerName.valueOf("s1:1,1");<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private static ServerName sn2 = ServerName.valueOf("s2:2,2");<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private static ServerName sn3 = ServerName.valueOf("s3:3,3");<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  private static HRegionInfo hri1 =<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_1, DUMMY_BYTES_2, false, 1);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  private static HRegionInfo hri2 =<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_2, HConstants.EMPTY_END_ROW, false, 2);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  private static HRegionInfo hri3 =<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_3, HConstants.EMPTY_END_ROW, false, 3);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  private static HRegionLocation loc1 = new HRegionLocation(hri1, sn);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  private static HRegionLocation loc2 = new HRegionLocation(hri2, sn);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  private static HRegionLocation loc3 = new HRegionLocation(hri3, sn2);<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  // Replica stuff<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  private static HRegionInfo hri1r1 = RegionReplicaUtil.getRegionInfoForReplica(hri1, 1),<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      hri1r2 = RegionReplicaUtil.getRegionInfoForReplica(hri1, 2);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  private static HRegionInfo hri2r1 = RegionReplicaUtil.getRegionInfoForReplica(hri2, 1);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  private static RegionLocations hrls1 = new RegionLocations(new HRegionLocation(hri1, sn),<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      new HRegionLocation(hri1r1, sn2), new HRegionLocation(hri1r2, sn3));<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  private static RegionLocations hrls2 = new RegionLocations(new HRegionLocation(hri2, sn2),<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      new HRegionLocation(hri2r1, sn3));<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  private static RegionLocations hrls3 = new RegionLocations(new HRegionLocation(hri3, sn3), null);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  private static final String success = "success";<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  private static Exception failure = new Exception("failure");<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  private static int NB_RETRIES = 3;<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  @BeforeClass<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public static void beforeClass(){<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, NB_RETRIES);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  static class CountingThreadFactory implements ThreadFactory {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    final AtomicInteger nbThreads;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    ThreadFactory realFactory =  Threads.newDaemonThreadFactory("test-TestAsyncProcess");<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    @Override<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    public Thread newThread(Runnable r) {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      nbThreads.incrementAndGet();<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      return realFactory.newThread(r);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>    CountingThreadFactory(AtomicInteger nbThreads){<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      this.nbThreads = nbThreads;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>  static class MyAsyncProcess extends AsyncProcess {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    final AtomicInteger nbMultiResponse = new AtomicInteger();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    final AtomicInteger nbActions = new AtomicInteger();<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public List&lt;AsyncRequestFuture&gt; allReqs = new ArrayList&lt;AsyncRequestFuture&gt;();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    public AtomicInteger callsCt = new AtomicInteger();<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>    @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    protected &lt;Res&gt; AsyncRequestFutureImpl&lt;Res&gt; createAsyncRequestFuture(TableName tableName,<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        List&lt;Action&lt;Row&gt;&gt; actions, long nonceGroup, ExecutorService pool,<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        Batch.Callback&lt;Res&gt; callback, Object[] results, boolean needResults) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      // Test HTable has tableName of null, so pass DUMMY_TABLE<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      AsyncRequestFutureImpl&lt;Res&gt; r = super.createAsyncRequestFuture(<a name="line.143"></a>
-<span class="sourceLineNo">144</span>          DUMMY_TABLE, actions, nonceGroup, pool, callback, results, needResults);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      allReqs.add(r);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      return r;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    public MyAsyncProcess(ClusterConnection hc, Configuration conf) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      this(hc, conf, new AtomicInteger());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    }<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    public MyAsyncProcess(ClusterConnection hc, Configuration conf, AtomicInteger nbThreads) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.154"></a>
-<span class="sourceLineNo">155</span>          new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(nbThreads)),<a name="line.155"></a>
-<span class="sourceLineNo">156</span>            new RpcRetryingCallerFactory(conf), false, new RpcControllerFactory(conf));<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public MyAsyncProcess(<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        ClusterConnection hc, Configuration conf, boolean useGlobalErrors) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.161"></a>
-<span class="sourceLineNo">162</span>        new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(new AtomicInteger())),<a name="line.162"></a>
-<span class="sourceLineNo">163</span>          new RpcRetryingCallerFactory(conf), useGlobalErrors, new RpcControllerFactory(conf));<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public MyAsyncProcess(ClusterConnection hc, Configuration conf, boolean useGlobalErrors,<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        @SuppressWarnings("unused") boolean dummy) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.168"></a>
-<span class="sourceLineNo">169</span>              new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(new AtomicInteger())) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        @Override<a name="line.170"></a>
-<span class="sourceLineNo">171</span>        public void execute(Runnable command) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>          throw new RejectedExecutionException("test under failure");<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>          new RpcRetryingCallerFactory(conf), useGlobalErrors, new RpcControllerFactory(conf));<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>    @Override<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    public &lt;Res&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.179"></a>
-<span class="sourceLineNo">180</span>        boolean atLeastOne, Callback&lt;Res&gt; callback, boolean needResults)<a name="line.180"></a>
-<span class="sourceLineNo">181</span>            throws InterruptedIOException {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      // We use results in tests to check things, so override to always save them.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      return super.submit(DUMMY_TABLE, rows, atLeastOne, callback, true);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>    @Override<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(MultiServerCallable&lt;Row&gt; callable) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      callsCt.incrementAndGet();<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      final MultiResponse mr = createMultiResponse(<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          callable.getMulti(), nbMultiResponse, nbActions, new ResponseGenerator() {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>            @Override<a name="line.191"></a>
-<span class="sourceLineNo">192</span>            public void addResponse(MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>              if (Arrays.equals(FAILS, a.getAction().getRow())) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>                mr.add(regionName, a.getOriginalIndex(), failure);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>              } else {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>                mr.add(regionName, a.getOriginalIndex(), success);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>              }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>            }<a name="line.198"></a>
-<span class="sourceLineNo">199</span>          });<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>      return new RpcRetryingCallerImpl&lt;MultiResponse&gt;(100, 10, 9) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        @Override<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable,<a name="line.203"></a>
-<span class="sourceLineNo">204</span>                                                int callTimeout)<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        throws IOException, RuntimeException {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>          try {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>            // sleep one second in order for threadpool to start another thread instead of reusing<a name="line.207"></a>
-<span class="sourceLineNo">208</span>            // existing one.<a name="line.208"></a>
-<span class="sourceLineNo">209</span>            Thread.sleep(1000);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>          } catch (InterruptedException e) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>            // ignore error<a name="line.211"></a>
-<span class="sourceLineNo">212</span>          }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>          return mr;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      };<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  }<a name="line.217"></a>
-<span class="sourceLineNo">218</span><a name="line.218"></a>
-<span class="sourceLineNo">219</span>  static class CallerWithFailure extends RpcRetryingCallerImpl&lt;MultiResponse&gt;{<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>    public CallerWithFailure() {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      super(100, 100, 9);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>    @Override<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable, int callTimeout)<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        throws IOException, RuntimeException {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      throw new IOException("test");<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>  static class AsyncProcessWithFailure extends MyAsyncProcess {<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    public AsyncProcessWithFailure(ClusterConnection hc, Configuration conf) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      super(hc, conf, true);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      serverTrackerTimeout = 1;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    }<a name="line.237"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.CallQueueTooBigException;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.CategoryBasedTimeout;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.Cell;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HConstants;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ServerName;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableName;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.coprocessor.Batch.Callback;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.junit.Assert;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.junit.BeforeClass;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.Rule;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.Test;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.junit.experimental.categories.Category;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.junit.rules.TestRule;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.mockito.Mockito;<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>@Category({ClientTests.class, MediumTests.class})<a name="line.73"></a>
+<span class="sourceLineNo">074</span>public class TestAsyncProcess {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  @Rule public final TestRule timeout = CategoryBasedTimeout.builder().withTimeout(this.getClass()).<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      withLookingForStuckThread(true).build();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private final static Log LOG = LogFactory.getLog(TestAsyncProcess.class);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final TableName DUMMY_TABLE =<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      TableName.valueOf("DUMMY_TABLE");<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final byte[] DUMMY_BYTES_1 = "DUMMY_BYTES_1".getBytes();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private static final byte[] DUMMY_BYTES_2 = "DUMMY_BYTES_2".getBytes();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private static final byte[] DUMMY_BYTES_3 = "DUMMY_BYTES_3".getBytes();<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private static final byte[] FAILS = "FAILS".getBytes();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private static final Configuration conf = new Configuration();<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private static ServerName sn = ServerName.valueOf("s1:1,1");<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  private static ServerName sn2 = ServerName.valueOf("s2:2,2");<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  private static ServerName sn3 = ServerName.valueOf("s3:3,3");<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private static HRegionInfo hri1 =<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_1, DUMMY_BYTES_2, false, 1);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  private static HRegionInfo hri2 =<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_2, HConstants.EMPTY_END_ROW, false, 2);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  private static HRegionInfo hri3 =<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      new HRegionInfo(DUMMY_TABLE, DUMMY_BYTES_3, HConstants.EMPTY_END_ROW, false, 3);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  private static HRegionLocation loc1 = new HRegionLocation(hri1, sn);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  private static HRegionLocation loc2 = new HRegionLocation(hri2, sn);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  private static HRegionLocation loc3 = new HRegionLocation(hri3, sn2);<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  // Replica stuff<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  private static HRegionInfo hri1r1 = RegionReplicaUtil.getRegionInfoForReplica(hri1, 1),<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      hri1r2 = RegionReplicaUtil.getRegionInfoForReplica(hri1, 2);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  private static HRegionInfo hri2r1 = RegionReplicaUtil.getRegionInfoForReplica(hri2, 1);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private static RegionLocations hrls1 = new RegionLocations(new HRegionLocation(hri1, sn),<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      new HRegionLocation(hri1r1, sn2), new HRegionLocation(hri1r2, sn3));<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  private static RegionLocations hrls2 = new RegionLocations(new HRegionLocation(hri2, sn2),<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      new HRegionLocation(hri2r1, sn3));<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  private static RegionLocations hrls3 = new RegionLocations(new HRegionLocation(hri3, sn3), null);<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  private static final String success = "success";<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  private static Exception failure = new Exception("failure");<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private static int NB_RETRIES = 3;<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  @BeforeClass<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public static void beforeClass(){<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, NB_RETRIES);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  static class CountingThreadFactory implements ThreadFactory {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    final AtomicInteger nbThreads;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    ThreadFactory realFactory =  Threads.newDaemonThreadFactory("test-TestAsyncProcess");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public Thread newThread(Runnable r) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      nbThreads.incrementAndGet();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      return realFactory.newThread(r);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>    CountingThreadFactory(AtomicInteger nbThreads){<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      this.nbThreads = nbThreads;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>  static class MyAsyncProcess extends AsyncProcess {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    final AtomicInteger nbMultiResponse = new AtomicInteger();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final AtomicInteger nbActions = new AtomicInteger();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    public List&lt;AsyncRequestFuture&gt; allReqs = new ArrayList&lt;AsyncRequestFuture&gt;();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    public AtomicInteger callsCt = new AtomicInteger();<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>    @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    protected &lt;Res&gt; AsyncRequestFutureImpl&lt;Res&gt; createAsyncRequestFuture(TableName tableName,<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        List&lt;Action&lt;Row&gt;&gt; actions, long nonceGroup, ExecutorService pool,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        Batch.Callback&lt;Res&gt; callback, Object[] results, boolean needResults) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      // Test HTable has tableName of null, so pass DUMMY_TABLE<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      AsyncRequestFutureImpl&lt;Res&gt; r = super.createAsyncRequestFuture(<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          DUMMY_TABLE, actions, nonceGroup, pool, callback, results, needResults);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      allReqs.add(r);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      return r;<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>    public MyAsyncProcess(ClusterConnection hc, Configuration conf) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      this(hc, conf, new AtomicInteger());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>    public MyAsyncProcess(ClusterConnection hc, Configuration conf, AtomicInteger nbThreads) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.155"></a>
+<span class="sourceLineNo">156</span>          new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(nbThreads)),<a name="line.156"></a>
+<span class="sourceLineNo">157</span>            new RpcRetryingCallerFactory(conf), false, new RpcControllerFactory(conf));<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>    public MyAsyncProcess(<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        ClusterConnection hc, Configuration conf, boolean useGlobalErrors) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(new AtomicInteger())),<a name="line.163"></a>
+<span class="sourceLineNo">164</span>          new RpcRetryingCallerFactory(conf), useGlobalErrors, new RpcControllerFactory(conf));<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>    public MyAsyncProcess(ClusterConnection hc, Configuration conf, boolean useGlobalErrors,<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        @SuppressWarnings("unused") boolean dummy) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      super(hc, conf, new ThreadPoolExecutor(1, 20, 60, TimeUnit.SECONDS,<a name="line.169"></a>
+<span class="sourceLineNo">170</span>              new SynchronousQueue&lt;Runnable&gt;(), new CountingThreadFactory(new AtomicInteger())) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        public void execute(Runnable command) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          throw new RejectedExecutionException("test under failure");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      },<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          new RpcRetryingCallerFactory(conf), useGlobalErrors, new RpcControllerFactory(conf));<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    public &lt;Res&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        boolean atLeastOne, Callback&lt;Res&gt; callback, boolean needResults)<a name="line.181"></a>
+<span class="sourceLineNo">182</span>            throws InterruptedIOException {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      // We use results in tests to check things, so override to always save them.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      return super.submit(DUMMY_TABLE, rows, atLeastOne, callback, 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>    @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(MultiServerCallable&lt;Row&gt; callable) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      callsCt.incrementAndGet();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      final MultiResponse mr = createMultiResponse(<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          callable.getMulti(), nbMultiResponse, nbActions, new ResponseGenerator() {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>            @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>            public void addResponse(MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>              if (Arrays.equals(FAILS, a.getAction().getRow())) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                mr.add(regionName, a.getOriginalIndex(), failure);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>              } else {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                mr.add(regionName, a.getOriginalIndex(), success);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>              }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>            }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>          });<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>      return new RpcRetryingCallerImpl&lt;MultiResponse&gt;(100, 10, 9) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                                int callTimeout)<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        throws IOException, RuntimeException {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>            // sleep one second in order for threadpool to start another thread instead of reusing<a name="line.208"></a>
+<span class="sourceLineNo">209</span>            // existing one.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            Thread.sleep(1000);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>          } catch (InterruptedException e) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>            // ignore error<a name="line.212"></a>
+<span class="sourceLineNo">213</span>          }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          return mr;<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>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>  static class CallerWithFailure extends RpcRetryingCallerImpl&lt;MultiResponse&gt;{<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>    private final IOException e;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>    public CallerWithFailure(IOException e) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      super(100, 100, 9);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      this.e = e;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>    @Override<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable, int callTimeout)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        throws IOException, RuntimeException {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      throw e;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  static class AsyncProcessWithFailure extends MyAsyncProcess {<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    @Override<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(MultiServerCallable&lt;Row&gt; callable) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      callsCt.incrementAndGet();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      return new CallerWithFailure();<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  class MyAsyncProcessWithReplicas extends MyAsyncProcess {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    private Set&lt;byte[]&gt; failures = new TreeSet&lt;byte[]&gt;(new Bytes.ByteArrayComparator());<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private long primarySleepMs = 0, replicaSleepMs = 0;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    private Map&lt;ServerName, Long&gt; customPrimarySleepMs = new HashMap&lt;ServerName, Long&gt;();<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    private final AtomicLong replicaCalls = new AtomicLong(0);<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>    public void addFailures(HRegionInfo... hris) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      for (HRegionInfo hri : hris) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        failures.add(hri.getRegionName());<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>    public long getReplicaCallCount() {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      return replicaCalls.get();<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span>    public void setPrimaryCallDelay(ServerName server, long primaryMs) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      customPrimarySleepMs.put(server, primaryMs);<a name="line.263"></a>
+<span class="sourceLineNo">239</span>    private final IOException ioe;<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    public AsyncProcessWithFailure(ClusterConnection hc, Configuration conf, IOException ioe) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      super(hc, conf, true);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.ioe = ioe;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      serverTrackerTimeout = 1;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>    @Override<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(MultiServerCallable&lt;Row&gt; callable) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      callsCt.incrementAndGet();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      return new CallerWithFailure(ioe);<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>  class MyAsyncProcessWithReplicas extends MyAsyncProcess {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    private Set&lt;byte[]&gt; failures = new TreeSet&lt;byte[]&gt;(new Bytes.ByteArrayComparator());<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    private long primarySleepMs = 0, replicaSleepMs = 0;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    private Map&lt;ServerName, Long&gt; customPrimarySleepMs = new HashMap&lt;ServerName, Long&gt;();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    private final AtomicLong replicaCalls = new AtomicLong(0);<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>    public void addFailures(HRegionInfo... hris) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      for (HRegionInfo hri : hris) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        failures.add(hri.getRegionName());<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><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    public MyAsyncProcessWithReplicas(ClusterConnection hc, Configuration conf) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      super(hc, conf);<a name="line.267"></a>
+<span class="sourceLineNo">266</span>    public long getReplicaCallCount() {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      return replicaCalls.get();<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>    public void setCallDelays(long primaryMs, long replicaMs) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      this.primarySleepMs = primaryMs;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      this.replicaSleepMs = replicaMs;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>    @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        MultiServerCallable&lt;Row&gt; callable) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      final MultiResponse mr = createMultiResponse(<a name="line.278"></a>
-<span class="sourceLineNo">279</span>          callable.getMulti(), nbMultiResponse, nbActions, new ResponseGenerator() {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>            @Override<a name="line.280"></a>
-<span class="sourceLineNo">281</span>            public void addResponse(MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>              if (failures.contains(regionName)) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>                mr.add(regionName, a.getOriginalIndex(), failure);<a name="line.283"></a>
-<span class="sourceLineNo">284</span>              } else {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>                boolean isStale = !RegionReplicaUtil.isDefaultReplica(a.getReplicaId());<a name="line.285"></a>
-<span class="sourceLineNo">286</span>                mr.add(regionName, a.getOriginalIndex(),<a name="line.286"></a>
-<span class="sourceLineNo">287</span>                    Result.create(new Cell[0], null, isStale));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>              }<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            }<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          });<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      // Currently AsyncProcess either sends all-replica, or all-primary request.<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      final boolean isDefault = RegionReplicaUtil.isDefaultReplica(<a name="line.292"></a>
-<span class="sourceLineNo">293</span>          callable.getMulti().actions.values().iterator().next().iterator().next().getReplicaId());<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      final ServerName server = ((MultiServerCallable&lt;?&gt;)callable).getServerName();<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      String debugMsg = "Call to " + server + ", primary=" + isDefault + " with "<a name="line.295"></a>
-<span class="sourceLineNo">296</span>          + callable.getMulti().actions.size() + " entries: ";<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      for (byte[] region : callable.getMulti().actions.keySet()) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        debugMsg += "[" + Bytes.toStringBinary(region) + "], ";<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      }<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      LOG.debug(debugMsg);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      if (!isDefault) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        replicaCalls.incrementAndGet();<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>      return new RpcRetryingCallerImpl&lt;MultiResponse&gt;(100, 10, 9) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        @Override<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable, int callTimeout)<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        throws IOException, RuntimeException {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>          long sleep = -1;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>          if (isDefault) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>            Long customSleep = customPrimarySleepMs.get(server);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>            sleep = (customSleep == null ? primarySleepMs : customSleep.longValue());<a name="line.312"></a>
-<span class="sourceLineNo">313</span>          } else {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>            sleep = replicaSleepMs;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>          }<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          if (sleep != 0) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>            try {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>              Thread.sleep(sleep);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>            } catch (InterruptedException e) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>            }<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          }<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          return mr;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      };<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  static MultiResponse createMultiResponse(final MultiAction&lt;Row&gt; multi,<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      AtomicInteger nbMultiResponse, AtomicInteger nbActions, ResponseGenerator gen) {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    final MultiResponse mr = new MultiResponse();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    nbMultiResponse.incrementAndGet();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    for (Map.Entry&lt;byte[], List&lt;Action&lt;Row&gt;&gt;&gt; entry : multi.actions.entrySet()) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      byte[] regionName = entry.getKey();<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      for (Action&lt;Row&gt; a : entry.getValue()) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        nbActions.incrementAndGet();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        gen.addResponse(mr, regionName, a);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return mr;<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>  private static interface ResponseGenerator {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    void addResponse(final MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a);<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  /**<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   * Returns our async process.<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   */<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  static class MyConnectionImpl extends ConnectionImplementation {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    public static class TestRegistry implements Registry {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      @Override<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      public void init(Connection connection) {}<a name="line.352"></a>
+<span class="sourceLineNo">270</span>    public void setPrimaryCallDelay(ServerName server, long primaryMs) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      customPrimarySleepMs.put(server, primaryMs);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>    public MyAsyncProcessWithReplicas(ClusterConnection hc, Configuration conf) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      super(hc, conf);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>    public void setCallDelays(long primaryMs, long replicaMs) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      this.primarySleepMs = primaryMs;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      this.replicaSleepMs = replicaMs;<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>    @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    protected RpcRetryingCaller&lt;MultiResponse&gt; createCaller(<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        MultiServerCallable&lt;Row&gt; callable) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      final MultiResponse mr = createMultiResponse(<a name="line.286"></a>
+<span class="sourceLineNo">287</span>          callable.getMulti(), nbMultiResponse, nbActions, new ResponseGenerator() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>            @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>            public void addResponse(MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>              if (failures.contains(regionName)) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                mr.add(regionName, a.getOriginalIndex(), failure);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>              } else {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                boolean isStale = !RegionReplicaUtil.isDefaultReplica(a.getReplicaId());<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                mr.add(regionName, a.getOriginalIndex(),<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                    Result.create(new Cell[0], null, isStale));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>              }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>          });<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      // Currently AsyncProcess either sends all-replica, or all-primary request.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      final boolean isDefault = RegionReplicaUtil.isDefaultReplica(<a name="line.300"></a>
+<span class="sourceLineNo">301</span>          callable.getMulti().actions.values().iterator().next().iterator().next().getReplicaId());<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      final ServerName server = ((MultiServerCallable&lt;?&gt;)callable).getServerName();<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      String debugMsg = "Call to " + server + ", primary=" + isDefault + " with "<a name="line.303"></a>
+<span class="sourceLineNo">304</span>          + callable.getMulti().actions.size() + " entries: ";<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      for (byte[] region : callable.getMulti().actions.keySet()) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        debugMsg += "[" + Bytes.toStringBinary(region) + "], ";<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      LOG.debug(debugMsg);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      if (!isDefault) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        replicaCalls.incrementAndGet();<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>      return new RpcRetryingCallerImpl&lt;MultiResponse&gt;(100, 10, 9) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        @Override<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        public MultiResponse callWithoutRetries(RetryingCallable&lt;MultiResponse&gt; callable, int callTimeout)<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        throws IOException, RuntimeException {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>          long sleep = -1;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>          if (isDefault) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            Long customSleep = customPrimarySleepMs.get(server);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>            sleep = (customSleep == null ? primarySleepMs : customSleep.longValue());<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          } else {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>            sleep = replicaSleepMs;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          if (sleep != 0) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>            try {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>              Thread.sleep(sleep);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>            } catch (InterruptedException e) {<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>          return mr;<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>  }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>  static MultiResponse createMultiResponse(final MultiAction&lt;Row&gt; multi,<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      AtomicInteger nbMultiResponse, AtomicInteger nbActions, ResponseGenerator gen) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    final MultiResponse mr = new MultiResponse();<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    nbMultiResponse.incrementAndGet();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    for (Map.Entry&lt;byte[], List&lt;Action&lt;Row&gt;&gt;&gt; entry : multi.actions.entrySet()) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      byte[] regionName = entry.getKey();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      for (Action&lt;Row&gt; a : entry.getValue()) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        nbActions.incrementAndGet();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        gen.addResponse(mr, regionName, a);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      }<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return mr;<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>  private static interface ResponseGenerator {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    void addResponse(final MultiResponse mr, byte[] regionName, Action&lt;Row&gt; a);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>  }<a name="line.352"></a>
 <span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>      @Override<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      public RegionLocations getMetaRegionLocation() throws IOException {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        return null;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">354</span>  /**<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   * Returns our async process.<a name="line.355"></a>
+<span class="sourceLineNo">356</span>   */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  static class MyConnectionImpl extends ConnectionImplementation {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    public static class TestRegistry implements Registry {<a name="line.358"></a>
 <span class="sourceLineNo">359</span>      @Override<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      public String getClusterId() {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        return "testClusterId";<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>      @Override<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      public int getCurrentNrHRS() throws IOException {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>        return 1;<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    final AtomicInteger nbThreads = new AtomicInteger(0);<a name="line.370"></a>
+<span class="sourceLineNo">360</span>      public void init(Connection connection) {}<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>      @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      public RegionLocations getMetaRegionLocation() throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        return null;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>      @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      public String getClusterId() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        return "testClusterId";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      }<a name="line.370"></a>
 <span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>    protected MyConnectionImpl(Configuration conf) throws IOException {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      super(setupConf(conf), null, null);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>    private static Configuration setupConf(Configuration conf) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      conf.setClass(RegistryFactory.REGISTRY_IMPL_CONF_KEY, TestRegistry.class, Registry.class);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      return conf;<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>    @Override<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    public RegionLocations locateRegion(TableName tableName,<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        byte[] row, boolean useCache, boolean retry, int replicaId) throws IOException {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      return new RegionLocations(loc1);<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  /**<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * Returns our async process.<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   */<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  static class MyConnectionImpl2 extends MyConnectionImpl {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    List&lt;HRegionLocation&gt; hrl;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    final boolean usedRegions[];<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>    protected MyConnectionImpl2(List&lt;HRegionLocation&gt; hrl) throws IOException {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      super(conf);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      this.hrl = hrl;<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      this.usedRegions = new boolean[hrl.size()];<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    }<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>    @Override<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    public RegionLocations locateRegion(TableName tableName,<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        byte[] row, boolean useCache, boolean retry, int replicaId) throws IOException {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      int i = 0;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      for (HRegionLocation hr : hrl){<a name="line.405"></a>
-<span class="sourceLineNo">406</span>        if (Arrays.equals(row, hr.getRegionInfo().getStartKey())) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          usedRegions[i] = true;<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          return new RegionLocations(hr);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        i++;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      }<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      return null;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  @Test<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  public void testSubmit() throws Exception {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    ClusterConnection hc = createHConnection();<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    puts.add(createPut(1, true));<a name="line.422"></a>
+<span class="sourceLineNo">372</span>      @Override<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      public int getCurrentNrHRS() throws IOException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        return 1;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      }<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    }<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>    final AtomicInteger nbThreads = new AtomicInteger(0);<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    protected MyConnectionImpl(Configuration conf) throws IOException {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      super(setupConf(conf), null, null);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    }<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>    private static Configuration setupConf(Configuration conf) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      conf.setClass(RegistryFactory.REGISTRY_IMPL_CONF_KEY, TestRegistry.class, Registry.class);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      return conf;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>    @Override<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public RegionLocations locateRegion(TableName tableName,<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        byte[] row, boolean useCache, boolean retry, int replicaId) throws IOException {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      return new RegionLocations(loc1);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>  /**<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * Returns our async process.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  static class MyConnectionImpl2 extends MyConnectionImpl {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    List&lt;HRegionLocation&gt; hrl;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    final boolean usedRegions[];<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>    protected MyConnectionImpl2(List&lt;HRegionLocation&gt; hrl) throws IOException {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      super(conf);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      this.hrl = hrl;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      this.usedRegions = new boolean[hrl.size()];<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>    @Override<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    public RegionLocations locateRegion(TableName tableName,<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        byte[] row, boolean useCache, boolean retry, int replicaId) throws IOException {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      int i = 0;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      for (HRegionLocation hr : hrl){<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        if (Arrays.equals(row, hr.getRegionInfo().getStartKey())) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>          usedRegions[i] = true;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          return new RegionLocations(hr);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        }<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        i++;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      return null;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    }<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  }<a name="line.422"></a>
 <span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    Assert.assertTrue(puts.isEmpty());<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>  @Test<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  public void testSubmitWithCB() throws Exception {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    ClusterConnection hc = createHConnection();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    final AtomicInteger updateCalled = new AtomicInteger(0);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    Batch.Callback&lt;Object&gt; cb = new Batch.Callback&lt;Object&gt;() {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      @Override<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      public void update(byte[] region, byte[] row, Object result) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>        updateCalled.incrementAndGet();<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      }<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    };<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.438"></a>
-<span class="sourceLineNo">439</span><a name="line.439"></a>
-<span class="sourceLineNo">440</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    puts.add(createPut(1, true));<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>    final AsyncRequestFuture ars = ap.submit(DUMMY_TABLE, puts, false, cb, false);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    Assert.assertTrue(puts.isEmpty());<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    ars.waitUntilDone();<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    Assert.assertEquals(updateCalled.get(), 1);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  }<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span>  @Test<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  public void testSubmitBusyRegion() throws Exception {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    ClusterConnection hc = createHConnection();<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    puts.add(createPut(1, true));<a name="line.455"></a>
+<span class="sourceLineNo">424</span>  @Test<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  public void testSubmit() throws Exception {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    ClusterConnection hc = createHConnection();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    puts.add(createPut(1, true));<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    Assert.assertTrue(puts.isEmpty());<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>  @Test<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  public void testSubmitWithCB() throws Exception {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    ClusterConnection hc = createHConnection();<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    final AtomicInteger updateCalled = new AtomicInteger(0);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    Batch.Callback&lt;Object&gt; cb = new Batch.Callback&lt;Object&gt;() {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      public void update(byte[] region, byte[] row, Object result) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        updateCalled.incrementAndGet();<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>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    puts.add(createPut(1, true));<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>    final AsyncRequestFuture ars = ap.submit(DUMMY_TABLE, puts, false, cb, false);<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    Assert.assertTrue(puts.isEmpty());<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    ars.waitUntilDone();<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    Assert.assertEquals(updateCalled.get(), 1);<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>    ap.incTaskCounters(Arrays.asList(hri1.getRegionName()), sn);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    Assert.assertEquals(puts.size(), 1);<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>    ap.decTaskCounters(Arrays.asList(hri1.getRegionName()), sn);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    Assert.assertEquals(0, puts.size());<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>  @Test<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public void testSubmitBusyRegionServer() throws Exception {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    ClusterConnection hc = createHConnection();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>    ap.taskCounterPerServer.put(sn2, new AtomicInteger(ap.maxConcurrentTasksPerServer));<a name="line.472"></a>
+<span class="sourceLineNo">457</span>  @Test<a name="line.457"></a>
+<span class="sourceLineNo">458</span>  public void testSubmitBusyRegion() throws Exception {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    ClusterConnection hc = createHConnection();<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    puts.add(createPut(1, true));<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span>    ap.incTaskCounters(Arrays.asList(hri1.getRegionName()), sn);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    Assert.assertEquals(puts.size(), 1);<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>    ap.decTaskCounters(Arrays.asList(hri1.getRegionName()), sn);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    Assert.assertEquals(0, puts.size());<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>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    puts.add(createPut(1, true));<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    puts.add(createPut(3, true)); // &lt;== this one won't be taken, the rs is busy<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    puts.add(createPut(1, true)); // &lt;== this one will make it, the region is already in<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    puts.add(createPut(2, true)); // &lt;== new region, but the rs is ok<a name="line.478"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>  @Test<a name="line.475"></a>
+<span class="sourceLineNo">476</span>  public void testSubmitBusyRegionServer() throws Exception {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    ClusterConnection hc = createHConnection();<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    AsyncProcess ap = new MyAsyncProcess(hc, conf);<a name="line.478"></a>
 <span class="sourceLineNo">479</span><a name="line.479"></a>
-<span class="sourceLineNo">480</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    Assert.assertEquals(" puts=" + puts, 1, puts.size());<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>    ap.taskCounterPerServer.put(sn2, new AtomicInteger(ap.maxConcurrentTasksPerServer - 1));<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    Assert.assertTrue(puts.isEmpty());<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">480</span>    ap.taskCounterPerServer.put(sn2, new AtomicInteger(ap.maxConcurrentTasksPerServer));<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    puts.add(createPut(1, true));<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    puts.add(createPut(3, true)); // &lt;== this one won't be taken, the rs is busy<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    puts.add(createPut(1, true)); // &lt;== this one will make it, the region is already in<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    puts.add(createPut(2, true)); // &lt;== new region, but the rs is ok<a name="line.486"></a>
 <span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>  @Test<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  public void testFail() throws Exception {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    MyAsyncProcess ap = new MyAsyncProcess(createHConnection(), conf, false);<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>    List&lt;Put&gt; puts = new ArrayList&lt;Put&gt;();<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    Put p = createPut(1, false);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    puts.add(p);<a name="line.494"></a>
+<span class="sourceLineNo">488</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    Assert.assertEquals(" puts=" + puts, 1, puts.size());<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>    ap.taskCounterPerServer.put(sn2, new AtomicInteger(ap.maxConcurrentTasksPerServer - 1));<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    ap.submit(DUMMY_TABLE, puts, false, null, false);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    Assert.assertTrue(puts.isEmpty());<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>    AsyncRequestFuture ars = ap.submit(DUMMY_TABLE, puts, false, nul

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html
index bf27873..e4df7cc 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.html
@@ -75,2529 +75,2534 @@
 <span class="sourceLineNo">067</span><a name="line.67"></a>
 <span class="sourceLineNo">068</span>import org.apache.commons.logging.Log;<a name="line.68"></a>
 <span class="sourceLineNo">069</span>import org.apache.commons.logging.LogFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.conf.Configuration;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HConstants;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.Server;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.TableName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.User;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.io.BytesWritable;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.io.IntWritable;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.io.Writable;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.io.WritableUtils;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.util.StringUtils;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.htrace.TraceInfo;<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import com.google.protobuf.BlockingService;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import com.google.protobuf.CodedInputStream;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import com.google.protobuf.Message;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import com.google.protobuf.ServiceException;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import com.google.protobuf.TextFormat;<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>/**<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * An RPC server that hosts protobuf described Services.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> *<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.143"></a>
-<span class="sourceLineNo">144</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * and loops till done.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> *<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.151"></a>
-<span class="sourceLineNo">152</span> * and keep taking while the server is up.<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *<a name="line.153"></a>
-<span class="sourceLineNo">154</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * queue for Responder to pull from and return result to client.<a name="line.155"></a>
-<span class="sourceLineNo">156</span> *<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * @see RpcClientImpl<a name="line.157"></a>
-<span class="sourceLineNo">158</span> */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.159"></a>
-<span class="sourceLineNo">160</span>@InterfaceStability.Evolving<a name="line.160"></a>
-<span class="sourceLineNo">161</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      = new CallQueueTooBigException();<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final boolean authorize;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private boolean isSecurityEnabled;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final byte CURRENT_VERSION = 0;<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>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * How many calls/handler are allowed in the queue.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * The maximum size that we can hold in the RPC queue<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private final IPCUtil ipcUtil;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    Server.class.getName());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected ServiceAuthorizationManager authManager;<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * after the call returns.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  protected final InetSocketAddress bindAddress;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected int port;                             // port we listen on<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private int readThreads;                        // number of read threads<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.210"></a>
-<span class="sourceLineNo">211</span>                                                  // which a client may be<a name="line.211"></a>
-<span class="sourceLineNo">212</span>                                                  // disconnected<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.213"></a>
-<span class="sourceLineNo">214</span>                                                  // connections after which we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>                                                  // will start cleaning up idle<a name="line.215"></a>
-<span class="sourceLineNo">216</span>                                                  // connections<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.217"></a>
-<span class="sourceLineNo">218</span>                                                  // connections to nuke<a name="line.218"></a>
-<span class="sourceLineNo">219</span>                                                  // during a cleanup<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected MetricsHBaseServer metrics;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  protected final Configuration conf;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private int maxQueueSize;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  protected int socketSendBufferSize;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  protected final long purgeTimeout;    // in milliseconds<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  volatile boolean running = true;<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  /**<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * for business by the call to {@link #start()}.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  volatile boolean started = false;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final Counter callQueueSize = new Counter();<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  //maintain a list<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  //of client connections<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  private Listener listener = null;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected Responder responder = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  protected int numConnections = 0;<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /** Default value for above params */<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  private final int warnResponseTime;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  private final int warnResponseSize;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  private final Server server;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private final RpcScheduler scheduler;<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private UserProvider userProvider;<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>  private final BoundedByteBufferPool reservoir;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * the result.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  class Call implements RpcCallContext {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    protected int id;                             // the client's call id<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    protected BlockingService service;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    protected MethodDescriptor md;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    protected RequestHeader header;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    protected Message param;                      // the parameter passed<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // Optional cell data passed outside of protobufs.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    protected CellScanner cellScanner;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    protected Connection connection;              // connection to client<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    protected long timestamp;      // the time received when response is null<a name="line.295"></a>
-<span class="sourceLineNo">296</span>                                   // the time served when response is not null<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>     * Chain of buffers to send as response.<a name="line.298"></a>
-<span class="sourceLineNo">299</span>     */<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    protected BufferChain response;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    protected Responder responder;<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>    protected long size;                          // size of current call<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    protected boolean isError;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    protected TraceInfo tinfo;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    private ByteBuffer cellBlock = null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>    private User user;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    private InetAddress remoteAddress;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    private RpcCallback callback;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private long responseCellSize = 0;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    private long responseBlockSize = 0;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    private boolean retryImmediatelySupported;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.319"></a>
-<span class="sourceLineNo">320</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      this.id = id;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      this.service = service;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      this.md = md;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      this.header = header;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      this.param = param;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      this.cellScanner = cellScanner;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      this.connection = connection;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      this.timestamp = System.currentTimeMillis();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      this.response = null;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      this.responder = responder;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      this.isError = false;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      this.size = size;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      this.tinfo = tinfo;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      this.remoteAddress = remoteAddress;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      this.retryImmediatelySupported =<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          connection == null? null: connection.retryImmediatelySupported;<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.341"></a>
-<span class="sourceLineNo">342</span>     * cleanup.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>     */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    void done() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        // Return buffer to reservoir now we are done with it.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        reservoir.putBuffer(this.cellBlock);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        this.cellBlock = null;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    public String toString() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      return toShortString() + " param: " +<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        " connection: " + connection.toString();<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>    protected RequestHeader getHeader() {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return this.header;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    /*<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     * the payload of a command<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    String toShortString() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      String serviceName = this.connection.service != null ?<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.373"></a>
-<span class="sourceLineNo">374</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      String serviceName = this.connection.service != null ?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      return serviceName + "." + methodName;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      this.response = new BufferChain(response);<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>    protected synchronized void setResponse(Object m, final CellScanner cells,<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        Throwable t, String errorMsg) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      if (this.isError) return;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      if (t != null) this.isError = true;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      BufferChain bc = null;<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      try {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        ResponseHeader.Builder headerBuilder = ResponseHeader.newBuilder();<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // Presume it a pb Message.  Could be null.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        Message result = (Message)m;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        // Call id.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        headerBuilder.setCallId(this.id);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        if (t != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          ExceptionResponse.Builder exceptionBuilder = ExceptionResponse.newBuilder();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          exceptionBuilder.setExceptionClassName(t.getClass().getName());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          exceptionBuilder.setStackTrace(errorMsg);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          exceptionBuilder.setDoNotRetry(t instanceof DoNotRetryIOException);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          if (t instanceof RegionMovedException) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>            // Special casing for this exception.  This is only one carrying a payload.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            // Do this instead of build a generic system for allowing exceptions carry<a name="line.408"></a>
-<span class="sourceLineNo">409</span>            // any kind of payload.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            RegionMovedException rme = (RegionMovedException)t;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>            exceptionBuilder.setHostname(rme.getHostname());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            exceptionBuilder.setPort(rme.getPort());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>          }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          // Set the exception as the result of the method invocation.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          headerBuilder.setException(exceptionBuilder.build());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        // Pass reservoir to buildCellBlock. Keep reference to returne so can add it back to the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        // reservoir when finished. This is hacky and the hack is not contained but benefits are<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // high when we can avoid a big buffer allocation on each rpc.<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        this.cellBlock = ipcUtil.buildCellBlock(this.connection.codec,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          this.connection.compressionCodec, cells, reservoir);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        if (this.cellBlock != null) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          CellBlockMeta.Builder cellBlockBuilder = CellBlockMeta.newBuilder();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          // Presumes the cellBlock bytebuffer has been flipped so limit has total size in it.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          cellBlockBuilder.setLength(this.cellBlock.limit());<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          headerBuilder.setCellBlockMeta(cellBlockBuilder.build());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        Message header = headerBuilder.build();<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>        // Organize the response as a set of bytebuffers rather than collect it all together inside<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        // one big byte array; save on allocations.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        ByteBuffer bbHeader = IPCUtil.getDelimitedMessageAsByteBuffer(header);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        ByteBuffer bbResult = IPCUtil.getDelimitedMessageAsByteBuffer(result);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        int totalSize = bbHeader.capacity() + (bbResult == null? 0: bbResult.limit()) +<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          (this.cellBlock == null? 0: this.cellBlock.limit());<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        ByteBuffer bbTotalSize = ByteBuffer.wrap(Bytes.toBytes(totalSize));<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        bc = new BufferChain(bbTotalSize, bbHeader, bbResult, this.cellBlock);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (connection.useWrap) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          bc = wrapWithSasl(bc);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      } catch (IOException e) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        LOG.warn("Exception while creating response " + e);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      this.response = bc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      // Once a response message is created and set to this.response, this Call can be treated as<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      // done. The Responder thread will do the n/w write of this message back to client.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      if (this.callback != null) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        try {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          this.callback.run();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        } catch (Exception e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          // Don't allow any exception here to kill this handler thread.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          LOG.warn("Exception while running the Rpc Callback.", e);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    private BufferChain wrapWithSasl(BufferChain bc)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      if (!this.connection.useSasl) return bc;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      // Looks like no way around this; saslserver wants a byte array.  I have to make it one.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      // THIS IS A BIG UGLY COPY.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      byte [] responseBytes = bc.getBytes();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      byte [] token;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      // synchronization may be needed since there can be multiple Handler<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      // threads using saslServer to wrap responses.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      synchronized (connection.saslServer) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        token = connection.saslServer.wrap(responseBytes, 0, responseBytes.length);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      if (LOG.isTraceEnabled()) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        LOG.trace("Adding saslServer wrapped token of size " + token.length<a name="line.470"></a>
-<span class="sourceLineNo">471</span>            + " as call response.");<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>      ByteBuffer bbTokenLength = ByteBuffer.wrap(Bytes.toBytes(token.length));<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      ByteBuffer bbTokenBytes = ByteBuffer.wrap(token);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      return new BufferChain(bbTokenLength, bbTokenBytes);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    }<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>    @Override<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    public boolean isClientCellBlockSupported() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return this.connection != null &amp;&amp; this.connection.codec != null;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    @Override<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    public long disconnectSince() {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      if (!connection.channel.isOpen()) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        return System.currentTimeMillis() - timestamp;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      } else {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        return -1L;<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><a name="line.492"></a>
-<span class="sourceLineNo">493</span>    public long getSize() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      return this.size;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>    public long getResponseCellSize() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return responseCellSize;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    public void incrementResponseCellSize(long cellSize) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      responseCellSize += cellSize;<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>    @Override<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    public long getResponseBlockSize() {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      return responseBlockSize;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>    @Override<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    public void incrementResponseBlockSize(long blockSize) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      responseBlockSize += blockSize;<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>    public synchronized void sendResponseIfReady() throws IOException {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.responder.doRespond(this);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public UserGroupInformation getRemoteUser() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      return connection.ugi;<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    }<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>    @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    public User getRequestUser() {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      return user;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    @Override<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    public String getRequestUserName() {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      User user = getRequestUser();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      return user == null? null: user.getShortName();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>    @Override<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    public InetAddress getRemoteAddress() {<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      return remoteAddress;<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>    @Override<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    public VersionInfo getClientVersionInfo() {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      return connection.getVersionInfo();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>    @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    public synchronized void setCallBack(RpcCallback callback) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.callback = callback;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    @Override<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    public boolean isRetryImmediatelySupported() {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      return retryImmediatelySupported;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<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>  /** Listens on the socket. Creates jobs for the handler threads*/<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private class Listener extends Thread {<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    private ServerSocketChannel acceptChannel = null; //the accept channel<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private Selector selector = null; //the selector that we use for the server<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    private Reader[] readers = null;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    private int currentReader = 0;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    private Random rand = new Random();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    private long lastCleanupRunTime = 0; //the last time when a cleanup connec-<a name="line.563"></a>
-<span class="sourceLineNo">564</span>                                         //-tion (for idle connections) ran<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    private long cleanupInterval = 10000; //the minimum interval between<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                                          //two cleanup runs<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    private int backlogLength;<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>    private ExecutorService readPool;<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>    public Listener(final String name) throws IOException {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      super(name);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      backlogLength = conf.getInt("hbase.ipc.server.listen.queue.size", 128);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      // Create a new server socket and set to non blocking mode<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      acceptChannel = ServerSocketChannel.open();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      acceptChannel.configureBlocking(false);<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Bind the server socket to the binding addrees (can be different from the default interface)<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      bind(acceptChannel.socket(), bindAddress, backlogLength);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      port = acceptChannel.socket().getLocalPort(); //Could be an ephemeral port<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      address = (InetSocketAddress)acceptChannel.socket().getLocalSocketAddress();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      // create a selector;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      selector= Selector.open();<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>      readers = new Reader[readThreads];<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      readPool = Executors.newFixedThreadPool(readThreads,<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        new ThreadFactoryBuilder().setNameFormat(<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          "RpcServer.reader=%d,bindAddress=" + bindAddress.getHostName() +<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          ",port=" + port).setDaemon(true).build());<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      for (int i = 0; i &lt; readThreads; ++i) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        Reader reader = new Reader();<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        readers[i] = reader;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        readPool.execute(reader);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      LOG.info(getName() + ": started " + readThreads + " reader(s) listening on port=" + port);<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>      // Register accepts on the server socket with the selector.<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      acceptChannel.register(selector, SelectionKey.OP_ACCEPT);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.setName("RpcServer.listener,port=" + port);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      this.setDaemon(true);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.CallQueueTooBigException;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.conf.Configuration;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HConstants;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.Server;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.TableName;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.User;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.io.BytesWritable;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.io.IntWritable;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.io.Writable;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.io.WritableUtils;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.util.StringUtils;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.htrace.TraceInfo;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import com.google.protobuf.BlockingService;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import com.google.protobuf.CodedInputStream;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import com.google.protobuf.Message;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import com.google.protobuf.ServiceException;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import com.google.protobuf.TextFormat;<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>/**<a name="line.140"></a>
+<span class="sourceLineNo">141</span> * An RPC server that hosts protobuf described Services.<a name="line.141"></a>
+<span class="sourceLineNo">142</span> *<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.143"></a>
+<span class="sourceLineNo">144</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.146"></a>
+<span class="sourceLineNo">147</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * and loops till done.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> *<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * and keep taking while the server is up.<a name="line.153"></a>
+<span class="sourceLineNo">154</span> *<a name="line.154"></a>
+<span class="sourceLineNo">155</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.155"></a>
+<span class="sourceLineNo">156</span> * queue for Responder to pull from and return result to client.<a name="line.156"></a>
+<span class="sourceLineNo">157</span> *<a name="line.157"></a>
+<span class="sourceLineNo">158</span> * @see RpcClientImpl<a name="line.158"></a>
+<span class="sourceLineNo">159</span> */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.160"></a>
+<span class="sourceLineNo">161</span>@InterfaceStability.Evolving<a name="line.161"></a>
+<span class="sourceLineNo">162</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      = new CallQueueTooBigException();<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  private final boolean authorize;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private boolean isSecurityEnabled;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public static final byte CURRENT_VERSION = 0;<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.176"></a>
+<span class="sourceLineNo">177</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * How many calls/handler are allowed in the queue.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * The maximum size that we can hold in the RPC queue<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final IPCUtil ipcUtil;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    Server.class.getName());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  protected ServiceAuthorizationManager authManager;<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * after the call returns.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  protected final InetSocketAddress bindAddress;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  protected int port;                             // port we listen on<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private int readThreads;                        // number of read threads<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                                  // which a client may be<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                                  // disconnected<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                                  // connections after which we<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                                  // will start cleaning up idle<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                                  // connections<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                                  // connections to nuke<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                                  // during a cleanup<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  protected MetricsHBaseServer metrics;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  protected final Configuration conf;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  private int maxQueueSize;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  protected int socketSendBufferSize;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  protected final long purgeTimeout;    // in milliseconds<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>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  volatile boolean running = true;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  /**<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * for business by the call to {@link #start()}.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   */<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  volatile boolean started = false;<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  /**<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  protected final Counter callQueueSize = new Counter();<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  //maintain a list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  //of client connections<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  private Listener listener = null;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  protected Responder responder = null;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  protected int numConnections = 0;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>  /** Default value for above params */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  private final int warnResponseTime;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  private final int warnResponseSize;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  private final Server server;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  private final RpcScheduler scheduler;<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>  private UserProvider userProvider;<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>  private final BoundedByteBufferPool reservoir;<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * the result.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  class Call implements RpcCallContext {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    protected int id;                             // the client's call id<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    protected BlockingService service;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    protected MethodDescriptor md;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    protected RequestHeader header;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    protected Message param;                      // the parameter passed<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    // Optional cell data passed outside of protobufs.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    protected CellScanner cellScanner;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    protected Connection connection;              // connection to client<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    protected long timestamp;      // the time received when response is null<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                   // the time served when response is not null<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span>     * Chain of buffers to send as response.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>     */<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    protected BufferChain response;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    protected Responder responder;<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    protected long size;                          // size of current call<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    protected boolean isError;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    protected TraceInfo tinfo;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    private ByteBuffer cellBlock = null;<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    private User user;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    private InetAddress remoteAddress;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    private RpcCallback callback;<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    private long responseCellSize = 0;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    private long responseBlockSize = 0;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    private boolean retryImmediatelySupported;<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      this.id = id;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      this.service = service;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      this.md = md;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      this.header = header;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      this.param = param;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      this.cellScanner = cellScanner;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      this.connection = connection;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      this.timestamp = System.currentTimeMillis();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      this.response = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      this.responder = responder;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      this.isError = false;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      this.size = size;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      this.tinfo = tinfo;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      this.remoteAddress = remoteAddress;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      this.retryImmediatelySupported =<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          connection == null? null: connection.retryImmediatelySupported;<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>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.342"></a>
+<span class="sourceLineNo">343</span>     * cleanup.<a name="line.343"></a>
+<span class="sourceLineNo">344</span>     */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    void done() {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        // Return buffer to reservoir now we are done with it.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        reservoir.putBuffer(this.cellBlock);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        this.cellBlock = null;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    @Override<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    public String toString() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      return toShortString() + " param: " +<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        " connection: " + connection.toString();<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    protected RequestHeader getHeader() {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      return this.header;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>    /*<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * the payload of a command<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    String toShortString() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      String serviceName = this.connection.service != null ?<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.374"></a>
+<span class="sourceLineNo">375</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.375"></a>
+<span class="sourceLineNo">376</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.376"></a>
+<span class="sourceLineNo">377</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      String serviceName = this.connection.service != null ?<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return serviceName + "." + methodName;<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>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.387"

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceStability.Evolving.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceStability.Evolving.html b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceStability.Evolving.html
index 726f5ff..dd311d8 100644
--- a/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceStability.Evolving.html
+++ b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceStability.Evolving.html
@@ -340,69 +340,73 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>interface&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></strong></code>
 <div class="block">The unit of storage in HBase consisting of the following fields:
  <br></div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/CellComparator.html" title="class in org.apache.hadoop.hbase">CellComparator</a></strong></code>
 <div class="block">Compare two HBase cells.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/CellUtil.html" title="class in org.apache.hadoop.hbase">CellUtil</a></strong></code>
 <div class="block">Utility methods helpful slinging <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase"><code>Cell</code></a> instances.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a></strong></code>
 <div class="block">Status information on the HBase cluster.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>interface&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/Coprocessor.html" title="interface in org.apache.hadoop.hbase">Coprocessor</a></strong></code>
 <div class="block">Coprocessor interface.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HBaseInterfaceAudience.html" title="class in org.apache.hadoop.hbase">HBaseInterfaceAudience</a></strong></code>
 <div class="block">This class defines constants for different classes of hbase limited private apis</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></strong></code>
 <div class="block">All hbase specific IOExceptions should be subclasses of HBaseIOException</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a></strong></code>
 <div class="block">An HColumnDescriptor contains information about a column family such as the
  number of versions, compression settings, etc.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a></strong></code>
 <div class="block">Information about a region.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></strong></code>
 <div class="block">Data structure to hold HRegionInfo and the address for the hosting
  HRegionServer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></strong></code>
 <div class="block">HTableDescriptor contains the details about an HBase table  such as the descriptors of
@@ -411,118 +415,118 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  when the region split should occur, coprocessors associated with it etc...</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/InvalidFamilyOperationException.html" title="class in org.apache.hadoop.hbase">InvalidFamilyOperationException</a></strong></code>
 <div class="block">Thrown if a request is table schema modification is requested but
  made for an invalid family name.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase">KeepDeletedCells</a></strong></code>
 <div class="block">Ways to keep cells marked for delete around.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/LocalHBaseCluster.html" title="class in org.apache.hadoop.hbase">LocalHBaseCluster</a></strong></code>
 <div class="block">This class creates a single process HBase cluster.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/MultiActionResultTooLarge.html" title="class in org.apache.hadoop.hbase">MultiActionResultTooLarge</a></strong></code>
 <div class="block">Exception thrown when the result needs to be chunked on the server side.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a></strong></code>
 <div class="block">Namespace POJO class.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.Builder.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor.Builder</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/OffheapTag.html" title="class in org.apache.hadoop.hbase">OffheapTag</a></strong></code>
 <div class="block">This is a <a href="../../../../../../org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase"><code>Tag</code></a> implementation in which value is backed by an off heap
  <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a></div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></strong></code>
 <div class="block">Procedure information</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/RegionLoad.html" title="class in org.apache.hadoop.hbase">RegionLoad</a></strong></code>
 <div class="block">Encapsulates per-region load metrics.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/RegionTooBusyException.html" title="class in org.apache.hadoop.hbase">RegionTooBusyException</a></strong></code>
 <div class="block">Thrown by a region server if it will block and wait to serve a request.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/RetryImmediatelyException.html" title="class in org.apache.hadoop.hbase">RetryImmediatelyException</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>interface&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a></strong></code>
 <div class="block">Defines the set of shared functions implemented by HBase servers (Masters
  and RegionServers).</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ServerLoad.html" title="class in org.apache.hadoop.hbase">ServerLoad</a></strong></code>
 <div class="block">This class is used for exporting current state of load on a RegionServer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></strong></code>
 <div class="block">Instance of an HBase ServerName.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>interface&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></strong></code>
 <div class="block">Implementers are Stoppable.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a></strong></code>
 <div class="block">Failed to find .tableinfo file under table dir</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></strong></code>
 <div class="block">Immutable POJO class for representing a table name.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>interface&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a></strong></code>
 <div class="block">Tags are part of cells and helps to add metadata about them.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/TagType.html" title="class in org.apache.hadoop.hbase">TagType</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ZooKeeperConnectionException.html" title="class in org.apache.hadoop.hbase">ZooKeeperConnectionException</a></strong></code>
 <div class="block">Thrown if the client can't connect to zookeeper</div>
@@ -1069,43 +1073,47 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">ClientExceptionsUtil</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/ConnectionClosingException.html" title="class in org.apache.hadoop.hbase.exceptions">ConnectionClosingException</a></strong></code>
 <div class="block">Thrown when the client believes that we are trying to communicate to has
  been repeatedly unresponsive for a while.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/OperationConflictException.html" title="class in org.apache.hadoop.hbase.exceptions">OperationConflictException</a></strong></code>
 <div class="block">The exception that is thrown if there's duplicate execution of non-idempotent operation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/PreemptiveFastFailException.html" title="class in org.apache.hadoop.hbase.exceptions">PreemptiveFastFailException</a></strong></code>
 <div class="block">Thrown when the client believes that we are trying to communicate to has
  been repeatedly unresponsive for a while.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/RegionInRecoveryException.html" title="class in org.apache.hadoop.hbase.exceptions">RegionInRecoveryException</a></strong></code>
 <div class="block">Thrown when a read request issued against a region which is in recovering state.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/RegionMovedException.html" title="class in org.apache.hadoop.hbase.exceptions">RegionMovedException</a></strong></code>
 <div class="block">Subclass if the server knows the region is now on another server.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/RegionOpeningException.html" title="class in org.apache.hadoop.hbase.exceptions">RegionOpeningException</a></strong></code>
 <div class="block">Subclass if the server knows the region is now on another server.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/UnknownProtocolException.html" title="class in org.apache.hadoop.hbase.exceptions">UnknownProtocolException</a></strong></code>
 <div class="block">An error requesting an RPC protocol that the server is not serving.</div>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html
index db89e60..7723da7 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html
@@ -95,7 +95,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.121">AsyncProcess.AsyncRequestFuture</a></pre>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.122">AsyncProcess.AsyncRequestFuture</a></pre>
 <div class="block">The context used to wait for results from one submit call.
  1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),
     then errors and failed operations in this object will reflect global errors.
@@ -161,7 +161,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>hasError</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#line.122">hasError</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#line.123">hasError</a>()</pre>
 </li>
 </ul>
 <a name="getErrors()">
@@ -170,7 +170,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>getErrors</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.html" title="class in org.apache.hadoop.hbase.client">RetriesExhaustedWithDetailsException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#line.123">getErrors</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.html" title="class in org.apache.hadoop.hbase.client">RetriesExhaustedWithDetailsException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#line.124">getErrors</a>()</pre>
 </li>
 </ul>
 <a name="getFailedOperations()">
@@ -179,7 +179,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>getFailedOperations</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#line.124">getFailedOperations</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#line.125">getFailedOperations</a>()</pre>
 </li>
 </ul>
 <a name="getResults()">
@@ -188,7 +188,7 @@
 <ul class="blockList">
 <li class="blockList">
 <h4>getResults</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#line.125">getResults</a>()
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#line.126">getResults</a>()
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></code></dd></dl>
@@ -200,7 +200,7 @@
 <ul class="blockListLast">
 <li class="blockList">
 <h4>waitUntilDone</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#line.127">waitUntilDone</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#line.128">waitUntilDone</a>()
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <div class="block">Wait until all tasks are executed, successfully or not.</div>
 <dl><dt><span class="strong">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html
index 1e7ce07..944685f 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.609">AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable</a>
+<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.610">AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
 <div class="block">Runnable (that can be submitted to thread pool) that waits for when it's time
@@ -215,7 +215,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>startTime</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.610">startTime</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.611">startTime</a></pre>
 </li>
 </ul>
 <a name="initialActions">
@@ -224,7 +224,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>initialActions</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.611">initialActions</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.612">initialActions</a></pre>
 </li>
 </ul>
 </li>
@@ -241,7 +241,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.613">AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;initialActions,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.614">AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;initialActions,
                                                               long&nbsp;startTime)</pre>
 </li>
 </ul>
@@ -259,7 +259,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.619">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.620">run</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -272,7 +272,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>addReplicaActions</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.662">addReplicaActions</a>(int&nbsp;index,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.663">addReplicaActions</a>(int&nbsp;index,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;actionsByServer,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;unknownReplicaActions)</pre>
 <div class="block">Add replica actions to action map by server.</div>
@@ -285,7 +285,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>addReplicaActionsAgain</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.693">addReplicaActionsAgain</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html#line.694">addReplicaActionsAgain</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action,
                           <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;actionsByServer)</pre>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html
index 130672c..7a1949a 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.709">AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable</a>
+<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.710">AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
 <div class="block">Runnable (that can be submitted to thread pool) that submits MultiAction to a
@@ -211,7 +211,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>multiAction</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.710">multiAction</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.711">multiAction</a></pre>
 </li>
 </ul>
 <a name="numAttempt">
@@ -220,7 +220,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>numAttempt</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.711">numAttempt</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.712">numAttempt</a></pre>
 </li>
 </ul>
 <a name="server">
@@ -229,7 +229,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>server</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/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.712">server</a></pre>
+<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/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.713">server</a></pre>
 </li>
 </ul>
 <a name="callsInProgress">
@@ -238,7 +238,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>callsInProgress</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.713">callsInProgress</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.714">callsInProgress</a></pre>
 </li>
 </ul>
 </li>
@@ -255,7 +255,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.715">AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;multiAction,
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.716">AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;multiAction,
                                                                int&nbsp;numAttempt,
                                                                <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                                                                <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;callsInProgress)</pre>
@@ -275,7 +275,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.725">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html#line.726">run</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/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/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html
index d0040f6..3180076 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html
@@ -61,1780 +61,1781 @@
 <span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.TableName;<a name="line.53"></a>
 <span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.backoff.ServerStatistics;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.htrace.Trace;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>import com.google.common.annotations.VisibleForTesting;<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> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * synchronous caller such as HTable.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * &lt;p&gt;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * to track operation progress.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * &lt;/p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * The class manages internally the retries.<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;/p&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;p&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;/p&gt;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * &lt;p&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * retrieving errors from different threads may be not thread safe.<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * arising from older operations.<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * &lt;/p&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * gets as well.<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;/p&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>@InterfaceAudience.Private<a name="line.98"></a>
-<span class="sourceLineNo">099</span>class AsyncProcess {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * this stage.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   */<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      "hbase.client.start.log.errors.counter";<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  /**<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * The context used to wait for results from one submit call.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   *  */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public static interface AsyncRequestFuture {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    public boolean hasError();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /**<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * Return value from a submit that didn't contain any requests.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    final Object[] result = new Object[0];<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public boolean hasError() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      return null;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>    @Override<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      return null;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    @Override<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    public Object[] getResults() {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      return result;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  };<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * the replica calls are launched. See results for details of this process.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private static class ReplicaResultState {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public ReplicaResultState(int callCount) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      this.callCount = callCount;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    int callCount;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    BatchErrors replicaErrors = null;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    @Override<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    public String toString() {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.htrace.Trace;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>import com.google.common.annotations.VisibleForTesting;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * synchronous caller such as HTable.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * &lt;p&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.68"></a>
+<span class="sourceLineNo">069</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * to track operation progress.<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;/p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * The class manages internally the retries.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;/p&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;p&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;/p&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * retrieving errors from different threads may be not thread safe.<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * arising from older operations.<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;/p&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;p&gt;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * gets as well.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/p&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>@InterfaceAudience.Private<a name="line.99"></a>
+<span class="sourceLineNo">100</span>class AsyncProcess {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * this stage.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      "hbase.client.start.log.errors.counter";<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * The context used to wait for results from one submit call.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   *  */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public static interface AsyncRequestFuture {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public boolean hasError();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Return value from a submit that didn't contain any requests.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final Object[] result = new Object[0];<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    public boolean hasError() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      return false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      return null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>    @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return null;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    public Object[] getResults() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      return result;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  };<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   * the replica calls are launched. See results for details of this process.<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private static class ReplicaResultState {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public ReplicaResultState(int callCount) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      this.callCount = callCount;<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>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    int callCount;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    BatchErrors replicaErrors = null;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    public String toString() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  // TODO: many of the fields should be made private<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  protected final long id;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  protected final ClusterConnection connection;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected final RpcRetryingCallerFactory rpcCallerFactory;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  protected final RpcControllerFactory rpcFactory;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  protected final BatchErrors globalErrors;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  protected final ExecutorService pool;<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  protected final AtomicLong tasksInProgress = new AtomicLong(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  protected final ConcurrentMap&lt;byte[], AtomicInteger&gt; taskCounterPerRegion =<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      new ConcurrentSkipListMap&lt;byte[], AtomicInteger&gt;(Bytes.BYTES_COMPARATOR);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected final ConcurrentMap&lt;ServerName, AtomicInteger&gt; taskCounterPerServer =<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      new ConcurrentHashMap&lt;ServerName, AtomicInteger&gt;();<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  // Start configuration settings.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final int startLogErrorsCnt;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  /**<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * The number of tasks simultaneously executed on the cluster.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  protected final int maxTotalConcurrentTasks;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * The number of tasks we run in parallel on a single region.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * With 1 (the default) , we ensure that the ordering of the queries is respected: we don't start<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * a set of operations on a region before the previous one is done. As well, this limits<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * the pressure we put on the region server.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  protected final int maxConcurrentTasksPerRegion;<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * The number of task simultaneously executed on a single region server.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  protected final int maxConcurrentTasksPerServer;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  protected final long pause;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  protected int numTries;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  protected int serverTrackerTimeout;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected int timeout;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  protected long primaryCallTimeoutMicroseconds;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // End configuration settings.<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  protected static class BatchErrors {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final List&lt;Throwable&gt; throwables = new ArrayList&lt;Throwable&gt;();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final List&lt;Row&gt; actions = new ArrayList&lt;Row&gt;();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    private final List&lt;String&gt; addresses = new ArrayList&lt;String&gt;();<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    public synchronized void add(Throwable ex, Row row, ServerName serverName) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (row == null){<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        throw new IllegalArgumentException("row cannot be null. location=" + serverName);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>      throwables.add(ex);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      actions.add(row);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      addresses.add(serverName != null ? serverName.toString() : "null");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public boolean hasErrors() {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return !throwables.isEmpty();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private synchronized RetriesExhaustedWithDetailsException makeException() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      return new RetriesExhaustedWithDetailsException(<a name="line.245"></a>
-<span class="sourceLineNo">246</span>          new ArrayList&lt;Throwable&gt;(throwables),<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          new ArrayList&lt;Row&gt;(actions), new ArrayList&lt;String&gt;(addresses));<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>    public synchronized void clear() {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      throwables.clear();<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      actions.clear();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      addresses.clear();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public synchronized void merge(BatchErrors other) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      throwables.addAll(other.throwables);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      actions.addAll(other.actions);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      addresses.addAll(other.addresses);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  public AsyncProcess(ClusterConnection hc, Configuration conf, ExecutorService pool,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcRetryingCallerFactory rpcCaller, boolean useGlobalErrors,<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      RpcControllerFactory rpcFactory) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    if (hc == null) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      throw new IllegalArgumentException("HConnection cannot be null.");<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>    this.connection = hc;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    this.pool = pool;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    this.globalErrors = useGlobalErrors ? new BatchErrors() : null;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    this.id = COUNTER.incrementAndGet();<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // how many times we could try in total, one more than retry number<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    this.numTries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER) + 1;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    this.timeout = conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    this.primaryCallTimeoutMicroseconds = conf.getInt(PRIMARY_CALL_TIMEOUT_KEY, 10000);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    this.maxTotalConcurrentTasks = conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    this.maxConcurrentTasksPerServer = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERSERVER_TASKS,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERSERVER_TASKS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.maxConcurrentTasksPerRegion = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERREGION_TASKS,<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERREGION_TASKS);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.startLogErrorsCnt =<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        conf.getInt(START_LOG_ERRORS_AFTER_COUNT_KEY, DEFAULT_START_LOG_ERRORS_AFTER_COUNT);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (this.maxTotalConcurrentTasks &lt;= 0) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throw new IllegalArgumentException("maxTotalConcurrentTasks=" + maxTotalConcurrentTasks);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (this.maxConcurrentTasksPerServer &lt;= 0) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      throw new IllegalArgumentException("maxConcurrentTasksPerServer=" +<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          maxConcurrentTasksPerServer);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    if (this.maxConcurrentTasksPerRegion &lt;= 0) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      throw new IllegalArgumentException("maxConcurrentTasksPerRegion=" +<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          maxConcurrentTasksPerRegion);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Server tracker allows us to do faster, and yet useful (hopefully), retries.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // However, if we are too useful, we might fail very quickly due to retry count limit.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // To avoid this, we are going to cheat for now (see HBASE-7659), and calculate maximum<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    // retry time if normal retries were used. Then we will retry until this time runs out.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // If we keep hitting one server, the net effect will be the incremental backoff, and<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    // essentially the same number of retries as planned. If we have to do faster retries,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // we will do more retries in aggregate, but the user will be none the wiser.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    this.serverTrackerTimeout = 0;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (int i = 0; i &lt; this.numTries; ++i) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      serverTrackerTimeout += ConnectionUtils.getPauseTime(this.pause, i);<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>    this.rpcCallerFactory = rpcCaller;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    this.rpcFactory = rpcFactory;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @return pool if non null, otherwise returns this.pool if non null, otherwise throws<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   *         RuntimeException<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  private ExecutorService getPool(ExecutorService pool) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (pool != null) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      return pool;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    if (this.pool != null) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      return this.pool;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    throw new RuntimeException("Neither AsyncProcess nor request have ExecutorService");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  /**<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * See {@link #submit(ExecutorService, TableName, List, boolean, Batch.Callback, boolean)}.<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public &lt;CResult&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback, boolean needResults)<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      throws InterruptedIOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return submit(null, tableName, rows, atLeastOne, callback, needResults);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  /**<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * Extract from the rows list what we can submit. The rows we can not submit are kept in the<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * list. Does not send requests to replicas (not currently used for anything other<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * than streaming puts anyway).<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   *<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * @param pool ExecutorService to use.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * @param tableName The table for which this request is needed.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * @param callback Batch callback. Only called on success (94 behavior).<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * @param needResults Whether results are needed, or can be discarded.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @param rows - the submitted row. Modified by the method: we remove the rows we took.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * @param atLeastOne true if we should submit at least a subset.<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   */<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  public &lt;CResult&gt; AsyncRequestFuture submit(ExecutorService pool, TableName tableName,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      List&lt;? extends Row&gt; rows, boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      boolean needResults) throws InterruptedIOException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (rows.isEmpty()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return NO_REQS_RESULT;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    List&lt;Action&lt;Row&gt;&gt; retainedActions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    long nonceGroup = ng.getNonceGroup(); // Currently, nonce group is per entire client.<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    // Location errors that happen before we decide what requests to take.<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    List&lt;Exception&gt; locationErrors = null;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    List&lt;Integer&gt; locationErrorRows = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    do {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      // Wait until there is at least one slot for a new task.<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      waitForMaximumCurrentTasks(maxTotalConcurrentTasks - 1);<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>      // Remember the previous decisions about regions or region servers we put in the<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      //  final multi.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      Map&lt;Long, Boolean&gt; regionIncluded = new HashMap&lt;Long, Boolean&gt;();<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      Map&lt;ServerName, Boolean&gt; serverIncluded = new HashMap&lt;ServerName, Boolean&gt;();<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>      int posInList = -1;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      Iterator&lt;? extends Row&gt; it = rows.iterator();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      while (it.hasNext()) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        Row r = it.next();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        HRegionLocation loc;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (r == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            throw new IllegalArgumentException("#" + id + ", row cannot be null");<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          // Make sure we get 0-s replica.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          RegionLocations locs = connection.locateRegion(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>              tableName, r.getRow(), true, true, RegionReplicaUtil.DEFAULT_REPLICA_ID);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (locs == null || locs.isEmpty() || locs.getDefaultRegionLocation() == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            throw new IOException("#" + id + ", no location found, aborting submit for"<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                + " tableName=" + tableName + " rowkey=" + Bytes.toStringBinary(r.getRow()));<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          loc = locs.getDefaultRegionLocation();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        } catch (IOException ex) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          locationErrors = new ArrayList&lt;Exception&gt;();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          locationErrorRows = new ArrayList&lt;Integer&gt;();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error("Failed to get region location ", ex);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          // This action failed before creating ars. Retain it, but do not add to submit list.<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          // We will then add it to ars in an already-failed state.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          retainedActions.add(new Action&lt;Row&gt;(r, ++posInList));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          locationErrors.add(ex);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>          locationErrorRows.add(posInList);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          it.remove();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>          break; // Backward compat: we stop considering actions on location error.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>        if (canTakeOperation(loc, regionIncluded, serverIncluded)) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, ++posInList);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>          setNonce(ng, r, action);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          retainedActions.add(action);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          // TODO: replica-get is not supported on this path<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          byte[] regionName = loc.getRegionInfo().getRegionName();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          addAction(loc.getServerName(), regionName, action, actionsByServer, nonceGroup);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          it.remove();<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>    } while (retainedActions.isEmpty() &amp;&amp; atLeastOne &amp;&amp; (locationErrors == null));<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>    if (retainedActions.isEmpty()) return NO_REQS_RESULT;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return submitMultiActions(tableName, retainedActions, nonceGroup, callback, null, needResults,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      locationErrors, locationErrorRows, actionsByServer, pool);<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>  &lt;CResult&gt; AsyncRequestFuture submitMultiActions(TableName tableName,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      List&lt;Action&lt;Row&gt;&gt; retainedActions, long nonceGroup, Batch.Callback&lt;CResult&gt; callback,<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Object[] results, boolean needResults, List&lt;Exception&gt; locationErrors,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      List&lt;Integer&gt; locationErrorRows, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      ExecutorService pool) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      tableName, retainedActions, nonceGroup, pool, callback, results, needResults);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Add location errors if any<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    if (locationErrors != null) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      for (int i = 0; i &lt; locationErrors.size(); ++i) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        int originalIndex = locationErrorRows.get(i);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        Row row = retainedActions.get(originalIndex).getAction();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        ars.manageError(originalIndex, row,<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          Retry.NO_LOCATION_PROBLEM, locationErrors.get(i), null);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    ars.sendMultiAction(actionsByServer, 1, null, false);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return ars;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Helper that is used when grouping the actions per region server.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   *<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param loc - the destination. Must not be null.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @param action - the action to add to the multiaction<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @param actionsByServer the multiaction per server<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param nonceGroup Nonce group.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private static void addAction(ServerName server, byte[] regionName, Action&lt;Row&gt; action,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer, long nonceGroup) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    MultiAction&lt;Row&gt; multiAction = actionsByServer.get(server);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (multiAction == null) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      multiAction = new MultiAction&lt;Row&gt;();<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      actionsByServer.put(server, multiAction);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (action.hasNonce() &amp;&amp; !multiAction.hasNonceGroup()) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      multiAction.setNonceGroup(nonceGroup);<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>    multiAction.add(regionName, action);<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>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Check if we should send new operations to this region or region server.<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * We're taking into account the past decision; if we have already accepted<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * operation on a given region, we accept all operations for this region.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   *<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param loc; the region and the server name we want to use.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @return true if this region is considered as busy.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  protected boolean canTakeOperation(HRegionLocation loc,<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                                     Map&lt;Long, Boolean&gt; regionsIncluded,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                                     Map&lt;ServerName, Boolean&gt; serversIncluded) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    long regionId = loc.getRegionInfo().getRegionId();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    Boolean regionPrevious = regionsIncluded.get(regionId);<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (regionPrevious != null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // We already know what to do with this region.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      return regionPrevious;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span>    Boolean serverPrevious = serversIncluded.get(loc.getServerName());<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    if (Boolean.FALSE.equals(serverPrevious)) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // It's a new region, on a region server that we have already excluded.<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return false;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    AtomicInteger regionCnt = taskCounterPerRegion.get(loc.getRegionInfo().getRegionName());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (regionCnt != null &amp;&amp; regionCnt.get() &gt;= maxConcurrentTasksPerRegion) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Too many tasks on this region already.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      return false;<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>    if (serverPrevious == null) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      // The region is ok, but we need to decide for this region server.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      int newServers = 0; // number of servers we're going to contact so far<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      for (Map.Entry&lt;ServerName, Boolean&gt; kv : serversIncluded.entrySet()) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (kv.getValue()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          newServers++;<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // Do we have too many total tasks already?<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      boolean ok = (newServers + tasksInProgress.get()) &lt; maxTotalConcurrentTasks;<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      if (ok) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>        // If the total is fine, is it ok for this individual server?<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        AtomicInteger serverCnt = taskCounterPerServer.get(loc.getServerName());<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        ok = (serverCnt == null || serverCnt.get() &lt; maxConcurrentTasksPerServer);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      if (!ok) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        serversIncluded.put(loc.getServerName(), Boolean.FALSE);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        return false;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>      serversIncluded.put(loc.getServerName(), Boolean.TRUE);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    } else {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      assert serverPrevious.equals(Boolean.TRUE);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    regionsIncluded.put(regionId, Boolean.TRUE);<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return true;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * See {@link #submitAll(ExecutorService, TableName, List, Batch.Callback, Object[])}.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   */<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(TableName tableName,<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    return submitAll(null, tableName, rows, callback, results);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
-<span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * Submit immediately the list of rows, whatever the server status. Kept for backward<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * compatibility: it allows to be used with the batch interface that return an array of objects.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   *<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * @param pool ExecutorService to use.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * @param tableName name of the table for which the submission is made.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param rows the list of rows.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param callback the callback.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @param results Optional array to return the results thru; backward compat.<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(ExecutorService pool, TableName tableName,<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    List&lt;Action&lt;Row&gt;&gt; actions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.563"></a>
-<span class="sourceLineNo">564</span><a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // The position will be used by the processBatch to match the object array returned.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    int posInList = -1;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    for (Row r : rows) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      posInList++;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (r instanceof Put) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        Put put = (Put) r;<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        if (put.isEmpty()) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          throw new IllegalArgumentException("No columns to insert for #" + (posInList+1)+ " item");<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, posInList);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      setNonce(ng, r, action);<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      actions.add(action);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        tableName, actions, ng.getNonceGroup(), getPool(pool), callback, results, results != null);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ars.groupAndSendMultiAction(actions, 1);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return ars;<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>  private static void setNonce(NonceGenerator ng, Row r, Action&lt;Row&gt; action) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (!(r instanceof Append) &amp;&amp; !(r instanceof Increment)) return;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    action.setNonce(ng.newNonce()); // Action handles NO_NONCE, so it's ok if ng is disabled.<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span><a name="line.590"></a>
-<span class="sourceLineNo">591</span>  /**<a name="line.591"></a>
-<span class="sourceLineNo">592</span>   * The context, and return value, for a single submit/submitAll call.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * Note on how this class (one AP submit) works. Initially, all requests are split into groups<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * by server; request is sent to each server in parallel; the RPC calls are not async so a<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * thread per server is used. Every time some actions fail, regions/locations might have<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * changed, so we re-group them by server and region again and send these groups in parallel<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * too. The result, in case of retries, is a "tree" of threads, with parent exiting after<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * scheduling children. This is why lots of code doesn't require any synchronization.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  protected class AsyncRequestFutureImpl&lt;CResult&gt; implements AsyncRequestFuture {<a name="line.600"></a>
-<span class="sourceLineNo">601</span><a name="line.601"></a>
-<span class="sourceLineNo">602</span>    /**<a name="line.602"></a>
-<span class="sourceLineNo">603</span>     * Runnable (that can be submitted to thread pool) that waits for when it's time<a name="line.603"></a>
-<span class="sourceLineNo">604</span>     * to issue replica calls, finds region replicas, groups the requests by replica and<a name="line.604"></a>
-<span class="sourceLineNo">605</span>     * issues the calls (on separate threads, via sendMultiAction).<a name="line.605"></a>
-<span class="sourceLineNo">606</span>     * This is done on a separate thread because we don't want to wait on user thread for<a name="line.606"></a>
-<span class="sourceLineNo">607</span>     * our asynchronous call, and usually we have to wait before making replica calls.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>     */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    private final class ReplicaCallIssuingRunnable implements Runnable {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      private final long startTime;<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      private final List&lt;Action&lt;Row&gt;&gt; initialActions;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>      public ReplicaCallIssuingRunnable(List&lt;Action&lt;Row&gt;&gt; initialActions, long startTime) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.initialActions = initialActions;<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        this.startTime = startTime;<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>      @Override<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      public void run() {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        boolean done = false;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        if (primaryCallTimeoutMicroseconds &gt; 0) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>          try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>            done = waitUntilDone(startTime * 1000L + primaryCallTimeoutMicroseconds);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          } catch (InterruptedException ex) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>            LOG.error("Replica thread was interrupted - no replica calls: " + ex.getMessage());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            return;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>          }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        if (done) return; // Done within primary timeout<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        List&lt;Action&lt;Row&gt;&gt; unknownLocActions = new ArrayList&lt;Action&lt;Row&gt;&gt;();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        if (replicaGetIndices == null) {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>          for (int i = 0; i &lt; results.length; ++i) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>            addReplicaActions(i, actionsByServer, unknownLocActions);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          }<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        } else {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>          for (int replicaGetIndice : replicaGetIndices) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>            addReplicaActions(replicaGetIndice, actionsByServer, unknownLocActions);<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>        if (!actionsByServer.isEmpty()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          sendMultiAction(actionsByServer, 1, null, unknownLocActions.isEmpty());<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        }<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        if (!unknownLocActions.isEmpty()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>          actionsByServer = new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          for (Action&lt;Row&gt; action : unknownLocActions) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>            addReplicaActionsAgain(action, actionsByServer);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          // Some actions may have completely failed, they are handled inside addAgain.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>          if (!actionsByServer.isEmpty()) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>            sendMultiAction(actionsByServer, 1, null, true);<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>      }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>      /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>       * Add replica actions to action map by server.<a name="line.658"></a>
-<span class="sourceLineNo">659</span>       * @param index Index of the original action.<a name="line.659"></a>
-<span class="sourceLineNo">660</span>       * @param actionsByServer The map by server to add it to.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>       */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      private void addReplicaActions(int index, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.662"></a>
-<span class="sourceLineNo">663</span>          List&lt;Action&lt;Row&gt;&gt; unknownReplicaActions) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>        if (results[index] != null) return; // opportunistic. Never goes from non-null to null.<a name="line.664"></a>
-<span class="sourceLineNo">665</span>        Action&lt;Row&gt; action = initialActions.get(index);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        RegionLocations loc = findAllLocationsOrFail(action, true);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>        if (loc == null) return;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>        HRegionLocation[] locs = loc.getRegionLocations();<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        if (locs.length == 1) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>          LOG.warn("No replicas found for " + action.getAction());<a name="line.670"></a>
-<span class="sourceLineNo">671</span>          return;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        synchronized (replicaResultLock) {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          // Don't run replica calls if the original has finished. We could do it e.g. if<a name="line.674"></a>
-<span class="sourceLineNo">675</span>          // original has already failed before first replica call (unlikely given retries),<a name="line.675"></a>
-<span class="sourceLineNo">676</span>          // but that would require additional synchronization w.r.t. returning to caller.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          if (results[index] != null) return;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // We set the number of calls here. After that any path must call setResult/setError.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          // True even for replicas that are not found - if we refuse to send we MUST set error.<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          results[index] = new ReplicaResultState(locs.length);<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        for (int i = 1; i &lt; locs.length; ++i) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          Action&lt;Row&gt; replicaAction = new Action&lt;Row&gt;(action, i);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          if (locs[i] != null) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>            addAction(locs[i].getServerName(), locs[i].getRegionInfo().getRegionName(),<a name="line.685"></a>
-<span class="sourceLineNo">686</span>                replicaAction, actionsByServer, nonceGroup);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          } else {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>            unknownReplicaActions.add(replicaAction);<a name="line.688"></a>
-<span class="sourceLineNo">689</span>          }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      }<a name="line.691"></a>
-<span class="sourceLineNo">692</span><a name="line.692"></a>
-<span class="sourceLineNo">693</span>      private void addReplicaActionsAgain(<a name="line.693"></a>
-<span class="sourceLineNo">694</span>          Action&lt;Row&gt; action, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        if (action.getReplicaId() == RegionReplicaUtil.DEFAULT_REPLICA_ID) {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          throw new AssertionError("Cannot have default replica here");<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        HRegionLocation loc = getReplicaLocationOrFail(action);<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        if (loc == null) return;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        addAction(loc.getServerName(), loc.getRegionInfo().getRegionName(),<a name="line.700"></a>
-<span class="sourceLineNo">701</span>            action, actionsByServer, nonceGroup);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>    /**<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     * Runnable (that can be submitted to thread pool) that submits MultiAction to a<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * single server. The server call is synchronous, therefore we do it on a thread pool.<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     */<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    private final class SingleServerRequestRunnable implements Runnable {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      private final MultiAction&lt;Row&gt; multiAction;<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      private final int numAttempt;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      private final ServerName server;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>      private SingleServerRequestRunnable(<a name="line.715"></a>
-<span class="sourceLineNo">716</span>          MultiAction&lt;Row&gt; multiAction, int numAttempt, ServerName server,<a name="line.716"></a>
-<span class="sourceLineNo">717</span>          Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>        this.multiAction = multiAction;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        this.numAttempt = numAttempt;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        this.server = server;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        this.callsInProgress = callsInProgress;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>      @Override<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      public void run() {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        MultiResponse res;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        MultiServerCallable&lt;Row&gt; callable = null;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>        try {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>          callable = createCallable(server, tableName, multiAction);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>          try {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>            RpcRetryingCaller&lt;MultiResponse&gt; caller = createCaller(callable);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>            if (callsInProgress != null) callsInProgress.add(callable);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>            res = caller.callWithoutRetries(callable, timeout);<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span>            if (res == null) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>              // Cancelled<a name="line.736"></a>
-<span class="sourceLineNo">737</span>              return;<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>          } catch (IOException e) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            // The service itself failed . It may be an error coming from the communication<a name="line.741"></a>
-<span class="sourceLineNo">742</span>            //   layer, but, as well, a functional error raised by the server.<a name="line.742"></a>
-<span class="sourceLineNo">743</span>            receiveGlobalFailure(multiAction, server, numAttempt, e);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>            return;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          } catch (Throwable t) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>            // This should not happen. Let's log &amp; retry anyway.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>            LOG.error("#" + id + ", Caught throwable while calling. This is unexpected." +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>                " Retrying. Server is " + server + ", tableName=" + tableName, t);<a name="line.748"></a>
-<span class="sourceLineNo">749</span>            receiveGlobalFailure(multiAction, server, numAttempt, t);<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            return;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>          }<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>          // Normal case: we received an answer from the server, and it's not an exception.<a name="line.753"></a>
-<span class="sourceLineNo">754</span>          receiveMultiAction(multiAction, server, res, numAttempt);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>        } catch (Throwable t) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // Something really bad happened. We are on the send thread that will now die.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          LOG.error("Internal AsyncProcess #" + id + " error for "<a name="line.757"></a>
-<span class="sourceLineNo">758</span>              + tableName + " processing for " + server, t);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          throw new RuntimeException(t);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        } finally {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          decTaskCounters(multiAction.getRegions(), server);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>          if (callsInProgress != null &amp;&amp; callable != null) {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>            callsInProgress.remove(callable);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          }<a name="line.764"></a>
-<span class="sourceLineNo">765</span>        }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    private final Batch.Callback&lt;CResult&gt; callback;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    private final BatchErrors errors;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    private final ConnectionImplementation.ServerErrorTracker errorsByServer;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    private final ExecutorService pool;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.773"></a>
-<span class="sourceLineNo">774</span><a name="line.774"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</s

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
index bf27873..e4df7cc 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
@@ -75,2529 +75,2534 @@
 <span class="sourceLineNo">067</span><a name="line.67"></a>
 <span class="sourceLineNo">068</span>import org.apache.commons.logging.Log;<a name="line.68"></a>
 <span class="sourceLineNo">069</span>import org.apache.commons.logging.LogFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.conf.Configuration;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HConstants;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.Server;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.TableName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.User;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.io.BytesWritable;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.io.IntWritable;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.io.Writable;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.io.WritableUtils;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.util.StringUtils;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.htrace.TraceInfo;<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import com.google.protobuf.BlockingService;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import com.google.protobuf.CodedInputStream;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import com.google.protobuf.Message;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import com.google.protobuf.ServiceException;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import com.google.protobuf.TextFormat;<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>/**<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * An RPC server that hosts protobuf described Services.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> *<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.143"></a>
-<span class="sourceLineNo">144</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * and loops till done.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> *<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.151"></a>
-<span class="sourceLineNo">152</span> * and keep taking while the server is up.<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *<a name="line.153"></a>
-<span class="sourceLineNo">154</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * queue for Responder to pull from and return result to client.<a name="line.155"></a>
-<span class="sourceLineNo">156</span> *<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * @see RpcClientImpl<a name="line.157"></a>
-<span class="sourceLineNo">158</span> */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.159"></a>
-<span class="sourceLineNo">160</span>@InterfaceStability.Evolving<a name="line.160"></a>
-<span class="sourceLineNo">161</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      = new CallQueueTooBigException();<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final boolean authorize;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private boolean isSecurityEnabled;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final byte CURRENT_VERSION = 0;<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>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * How many calls/handler are allowed in the queue.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * The maximum size that we can hold in the RPC queue<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private final IPCUtil ipcUtil;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    Server.class.getName());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected ServiceAuthorizationManager authManager;<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * after the call returns.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  protected final InetSocketAddress bindAddress;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected int port;                             // port we listen on<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private int readThreads;                        // number of read threads<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.210"></a>
-<span class="sourceLineNo">211</span>                                                  // which a client may be<a name="line.211"></a>
-<span class="sourceLineNo">212</span>                                                  // disconnected<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.213"></a>
-<span class="sourceLineNo">214</span>                                                  // connections after which we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>                                                  // will start cleaning up idle<a name="line.215"></a>
-<span class="sourceLineNo">216</span>                                                  // connections<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.217"></a>
-<span class="sourceLineNo">218</span>                                                  // connections to nuke<a name="line.218"></a>
-<span class="sourceLineNo">219</span>                                                  // during a cleanup<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected MetricsHBaseServer metrics;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  protected final Configuration conf;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private int maxQueueSize;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  protected int socketSendBufferSize;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  protected final long purgeTimeout;    // in milliseconds<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  volatile boolean running = true;<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  /**<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * for business by the call to {@link #start()}.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  volatile boolean started = false;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final Counter callQueueSize = new Counter();<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  //maintain a list<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  //of client connections<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  private Listener listener = null;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected Responder responder = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  protected int numConnections = 0;<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /** Default value for above params */<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  private final int warnResponseTime;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  private final int warnResponseSize;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  private final Server server;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private final RpcScheduler scheduler;<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private UserProvider userProvider;<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>  private final BoundedByteBufferPool reservoir;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * the result.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  class Call implements RpcCallContext {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    protected int id;                             // the client's call id<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    protected BlockingService service;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    protected MethodDescriptor md;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    protected RequestHeader header;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    protected Message param;                      // the parameter passed<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // Optional cell data passed outside of protobufs.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    protected CellScanner cellScanner;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    protected Connection connection;              // connection to client<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    protected long timestamp;      // the time received when response is null<a name="line.295"></a>
-<span class="sourceLineNo">296</span>                                   // the time served when response is not null<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>     * Chain of buffers to send as response.<a name="line.298"></a>
-<span class="sourceLineNo">299</span>     */<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    protected BufferChain response;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    protected Responder responder;<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>    protected long size;                          // size of current call<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    protected boolean isError;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    protected TraceInfo tinfo;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    private ByteBuffer cellBlock = null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>    private User user;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    private InetAddress remoteAddress;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    private RpcCallback callback;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private long responseCellSize = 0;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    private long responseBlockSize = 0;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    private boolean retryImmediatelySupported;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.319"></a>
-<span class="sourceLineNo">320</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      this.id = id;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      this.service = service;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      this.md = md;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      this.header = header;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      this.param = param;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      this.cellScanner = cellScanner;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      this.connection = connection;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      this.timestamp = System.currentTimeMillis();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      this.response = null;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      this.responder = responder;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      this.isError = false;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      this.size = size;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      this.tinfo = tinfo;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      this.remoteAddress = remoteAddress;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      this.retryImmediatelySupported =<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          connection == null? null: connection.retryImmediatelySupported;<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.341"></a>
-<span class="sourceLineNo">342</span>     * cleanup.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>     */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    void done() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        // Return buffer to reservoir now we are done with it.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        reservoir.putBuffer(this.cellBlock);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        this.cellBlock = null;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    public String toString() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      return toShortString() + " param: " +<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        " connection: " + connection.toString();<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>    protected RequestHeader getHeader() {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return this.header;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    /*<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     * the payload of a command<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    String toShortString() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      String serviceName = this.connection.service != null ?<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.373"></a>
-<span class="sourceLineNo">374</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      String serviceName = this.connection.service != null ?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      return serviceName + "." + methodName;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      this.response = new BufferChain(response);<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>    protected synchronized void setResponse(Object m, final CellScanner cells,<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        Throwable t, String errorMsg) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      if (this.isError) return;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      if (t != null) this.isError = true;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      BufferChain bc = null;<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      try {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        ResponseHeader.Builder headerBuilder = ResponseHeader.newBuilder();<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // Presume it a pb Message.  Could be null.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        Message result = (Message)m;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        // Call id.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        headerBuilder.setCallId(this.id);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        if (t != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          ExceptionResponse.Builder exceptionBuilder = ExceptionResponse.newBuilder();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          exceptionBuilder.setExceptionClassName(t.getClass().getName());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          exceptionBuilder.setStackTrace(errorMsg);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          exceptionBuilder.setDoNotRetry(t instanceof DoNotRetryIOException);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          if (t instanceof RegionMovedException) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>            // Special casing for this exception.  This is only one carrying a payload.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            // Do this instead of build a generic system for allowing exceptions carry<a name="line.408"></a>
-<span class="sourceLineNo">409</span>            // any kind of payload.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            RegionMovedException rme = (RegionMovedException)t;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>            exceptionBuilder.setHostname(rme.getHostname());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            exceptionBuilder.setPort(rme.getPort());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>          }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          // Set the exception as the result of the method invocation.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          headerBuilder.setException(exceptionBuilder.build());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        // Pass reservoir to buildCellBlock. Keep reference to returne so can add it back to the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        // reservoir when finished. This is hacky and the hack is not contained but benefits are<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // high when we can avoid a big buffer allocation on each rpc.<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        this.cellBlock = ipcUtil.buildCellBlock(this.connection.codec,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          this.connection.compressionCodec, cells, reservoir);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        if (this.cellBlock != null) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          CellBlockMeta.Builder cellBlockBuilder = CellBlockMeta.newBuilder();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          // Presumes the cellBlock bytebuffer has been flipped so limit has total size in it.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          cellBlockBuilder.setLength(this.cellBlock.limit());<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          headerBuilder.setCellBlockMeta(cellBlockBuilder.build());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        Message header = headerBuilder.build();<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>        // Organize the response as a set of bytebuffers rather than collect it all together inside<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        // one big byte array; save on allocations.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        ByteBuffer bbHeader = IPCUtil.getDelimitedMessageAsByteBuffer(header);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        ByteBuffer bbResult = IPCUtil.getDelimitedMessageAsByteBuffer(result);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        int totalSize = bbHeader.capacity() + (bbResult == null? 0: bbResult.limit()) +<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          (this.cellBlock == null? 0: this.cellBlock.limit());<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        ByteBuffer bbTotalSize = ByteBuffer.wrap(Bytes.toBytes(totalSize));<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        bc = new BufferChain(bbTotalSize, bbHeader, bbResult, this.cellBlock);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (connection.useWrap) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          bc = wrapWithSasl(bc);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      } catch (IOException e) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        LOG.warn("Exception while creating response " + e);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      this.response = bc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      // Once a response message is created and set to this.response, this Call can be treated as<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      // done. The Responder thread will do the n/w write of this message back to client.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      if (this.callback != null) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        try {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          this.callback.run();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        } catch (Exception e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          // Don't allow any exception here to kill this handler thread.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          LOG.warn("Exception while running the Rpc Callback.", e);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    private BufferChain wrapWithSasl(BufferChain bc)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      if (!this.connection.useSasl) return bc;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      // Looks like no way around this; saslserver wants a byte array.  I have to make it one.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      // THIS IS A BIG UGLY COPY.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      byte [] responseBytes = bc.getBytes();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      byte [] token;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      // synchronization may be needed since there can be multiple Handler<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      // threads using saslServer to wrap responses.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      synchronized (connection.saslServer) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        token = connection.saslServer.wrap(responseBytes, 0, responseBytes.length);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      if (LOG.isTraceEnabled()) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        LOG.trace("Adding saslServer wrapped token of size " + token.length<a name="line.470"></a>
-<span class="sourceLineNo">471</span>            + " as call response.");<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>      ByteBuffer bbTokenLength = ByteBuffer.wrap(Bytes.toBytes(token.length));<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      ByteBuffer bbTokenBytes = ByteBuffer.wrap(token);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      return new BufferChain(bbTokenLength, bbTokenBytes);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    }<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>    @Override<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    public boolean isClientCellBlockSupported() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return this.connection != null &amp;&amp; this.connection.codec != null;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    @Override<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    public long disconnectSince() {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      if (!connection.channel.isOpen()) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        return System.currentTimeMillis() - timestamp;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      } else {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        return -1L;<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><a name="line.492"></a>
-<span class="sourceLineNo">493</span>    public long getSize() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      return this.size;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>    public long getResponseCellSize() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return responseCellSize;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    public void incrementResponseCellSize(long cellSize) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      responseCellSize += cellSize;<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>    @Override<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    public long getResponseBlockSize() {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      return responseBlockSize;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>    @Override<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    public void incrementResponseBlockSize(long blockSize) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      responseBlockSize += blockSize;<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>    public synchronized void sendResponseIfReady() throws IOException {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.responder.doRespond(this);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public UserGroupInformation getRemoteUser() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      return connection.ugi;<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    }<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>    @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    public User getRequestUser() {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      return user;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    @Override<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    public String getRequestUserName() {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      User user = getRequestUser();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      return user == null? null: user.getShortName();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>    @Override<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    public InetAddress getRemoteAddress() {<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      return remoteAddress;<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>    @Override<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    public VersionInfo getClientVersionInfo() {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      return connection.getVersionInfo();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>    @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    public synchronized void setCallBack(RpcCallback callback) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.callback = callback;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    @Override<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    public boolean isRetryImmediatelySupported() {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      return retryImmediatelySupported;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<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>  /** Listens on the socket. Creates jobs for the handler threads*/<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private class Listener extends Thread {<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    private ServerSocketChannel acceptChannel = null; //the accept channel<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private Selector selector = null; //the selector that we use for the server<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    private Reader[] readers = null;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    private int currentReader = 0;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    private Random rand = new Random();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    private long lastCleanupRunTime = 0; //the last time when a cleanup connec-<a name="line.563"></a>
-<span class="sourceLineNo">564</span>                                         //-tion (for idle connections) ran<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    private long cleanupInterval = 10000; //the minimum interval between<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                                          //two cleanup runs<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    private int backlogLength;<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>    private ExecutorService readPool;<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>    public Listener(final String name) throws IOException {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      super(name);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      backlogLength = conf.getInt("hbase.ipc.server.listen.queue.size", 128);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      // Create a new server socket and set to non blocking mode<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      acceptChannel = ServerSocketChannel.open();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      acceptChannel.configureBlocking(false);<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Bind the server socket to the binding addrees (can be different from the default interface)<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      bind(acceptChannel.socket(), bindAddress, backlogLength);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      port = acceptChannel.socket().getLocalPort(); //Could be an ephemeral port<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      address = (InetSocketAddress)acceptChannel.socket().getLocalSocketAddress();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      // create a selector;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      selector= Selector.open();<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>      readers = new Reader[readThreads];<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      readPool = Executors.newFixedThreadPool(readThreads,<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        new ThreadFactoryBuilder().setNameFormat(<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          "RpcServer.reader=%d,bindAddress=" + bindAddress.getHostName() +<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          ",port=" + port).setDaemon(true).build());<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      for (int i = 0; i &lt; readThreads; ++i) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        Reader reader = new Reader();<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        readers[i] = reader;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        readPool.execute(reader);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      LOG.info(getName() + ": started " + readThreads + " reader(s) listening on port=" + port);<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>      // Register accepts on the server socket with the selector.<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      acceptChannel.register(selector, SelectionKey.OP_ACCEPT);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.setName("RpcServer.listener,port=" + port);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      this.setDaemon(true);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.CallQueueTooBigException;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.conf.Configuration;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HConstants;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.Server;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.TableName;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.User;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.io.BytesWritable;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.io.IntWritable;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.io.Writable;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.io.WritableUtils;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.util.StringUtils;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.htrace.TraceInfo;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import com.google.protobuf.BlockingService;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import com.google.protobuf.CodedInputStream;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import com.google.protobuf.Message;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import com.google.protobuf.ServiceException;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import com.google.protobuf.TextFormat;<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>/**<a name="line.140"></a>
+<span class="sourceLineNo">141</span> * An RPC server that hosts protobuf described Services.<a name="line.141"></a>
+<span class="sourceLineNo">142</span> *<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.143"></a>
+<span class="sourceLineNo">144</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.146"></a>
+<span class="sourceLineNo">147</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * and loops till done.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> *<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * and keep taking while the server is up.<a name="line.153"></a>
+<span class="sourceLineNo">154</span> *<a name="line.154"></a>
+<span class="sourceLineNo">155</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.155"></a>
+<span class="sourceLineNo">156</span> * queue for Responder to pull from and return result to client.<a name="line.156"></a>
+<span class="sourceLineNo">157</span> *<a name="line.157"></a>
+<span class="sourceLineNo">158</span> * @see RpcClientImpl<a name="line.158"></a>
+<span class="sourceLineNo">159</span> */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.160"></a>
+<span class="sourceLineNo">161</span>@InterfaceStability.Evolving<a name="line.161"></a>
+<span class="sourceLineNo">162</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      = new CallQueueTooBigException();<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  private final boolean authorize;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private boolean isSecurityEnabled;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public static final byte CURRENT_VERSION = 0;<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.176"></a>
+<span class="sourceLineNo">177</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * How many calls/handler are allowed in the queue.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * The maximum size that we can hold in the RPC queue<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final IPCUtil ipcUtil;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    Server.class.getName());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  protected ServiceAuthorizationManager authManager;<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * after the call returns.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  protected final InetSocketAddress bindAddress;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  protected int port;                             // port we listen on<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private int readThreads;                        // number of read threads<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                                  // which a client may be<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                                  // disconnected<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                                  // connections after which we<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                                  // will start cleaning up idle<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                                  // connections<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                                  // connections to nuke<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                                  // during a cleanup<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  protected MetricsHBaseServer metrics;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  protected final Configuration conf;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  private int maxQueueSize;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  protected int socketSendBufferSize;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  protected final long purgeTimeout;    // in milliseconds<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>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  volatile boolean running = true;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  /**<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * for business by the call to {@link #start()}.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   */<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  volatile boolean started = false;<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  /**<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  protected final Counter callQueueSize = new Counter();<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  //maintain a list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  //of client connections<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  private Listener listener = null;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  protected Responder responder = null;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  protected int numConnections = 0;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>  /** Default value for above params */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  private final int warnResponseTime;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  private final int warnResponseSize;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  private final Server server;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  private final RpcScheduler scheduler;<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>  private UserProvider userProvider;<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>  private final BoundedByteBufferPool reservoir;<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * the result.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  class Call implements RpcCallContext {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    protected int id;                             // the client's call id<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    protected BlockingService service;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    protected MethodDescriptor md;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    protected RequestHeader header;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    protected Message param;                      // the parameter passed<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    // Optional cell data passed outside of protobufs.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    protected CellScanner cellScanner;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    protected Connection connection;              // connection to client<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    protected long timestamp;      // the time received when response is null<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                   // the time served when response is not null<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span>     * Chain of buffers to send as response.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>     */<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    protected BufferChain response;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    protected Responder responder;<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    protected long size;                          // size of current call<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    protected boolean isError;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    protected TraceInfo tinfo;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    private ByteBuffer cellBlock = null;<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    private User user;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    private InetAddress remoteAddress;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    private RpcCallback callback;<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    private long responseCellSize = 0;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    private long responseBlockSize = 0;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    private boolean retryImmediatelySupported;<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      this.id = id;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      this.service = service;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      this.md = md;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      this.header = header;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      this.param = param;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      this.cellScanner = cellScanner;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      this.connection = connection;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      this.timestamp = System.currentTimeMillis();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      this.response = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      this.responder = responder;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      this.isError = false;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      this.size = size;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      this.tinfo = tinfo;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      this.remoteAddress = remoteAddress;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      this.retryImmediatelySupported =<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          connection == null? null: connection.retryImmediatelySupported;<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>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.342"></a>
+<span class="sourceLineNo">343</span>     * cleanup.<a name="line.343"></a>
+<span class="sourceLineNo">344</span>     */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    void done() {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        // Return buffer to reservoir now we are done with it.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        reservoir.putBuffer(this.cellBlock);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        this.cellBlock = null;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    @Override<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    public String toString() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      return toShortString() + " param: " +<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        " connection: " + connection.toString();<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    protected RequestHeader getHeader() {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      return this.header;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>    /*<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * the payload of a command<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    String toShortString() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      String serviceName = this.connection.service != null ?<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.374"></a>
+<span class="sourceLineNo">375</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.375"></a>
+<span class="sourceLineNo">376</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.376"></a>
+<span class="sourceLineNo">377</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      String serviceName = this.connection.service != null ?<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return serviceName + "." + methodName;<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>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span> 

<TRUNCATED>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/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 fa77d32..6369b59 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
@@ -68,15 +68,15 @@
 <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 final HMaster master;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private final Set&lt;ServerName&gt; deadServers;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private final String filter;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private final boolean catalogJanitorEnabled;<a name="line.65"></a>
+<span class="sourceLineNo">063</span>  private final AssignmentManager assignmentManager;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private final boolean catalogJanitorEnabled;<a name="line.64"></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 ServerManager serverManager;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private final String format;<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 AssignmentManager assignmentManager;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private final List&lt;ServerName&gt; servers;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private final Map&lt;String,Integer&gt; frags;<a name="line.71"></a>
+<span class="sourceLineNo">067</span>  private final Set&lt;ServerName&gt; deadServers;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private final List&lt;ServerName&gt; servers;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private final ServerName metaLocation;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private final String filter;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  private final String format;<a name="line.71"></a>
 <span class="sourceLineNo">072</span>  // 68, 1<a name="line.72"></a>
 <span class="sourceLineNo">073</span>  <a name="line.73"></a>
 <span class="sourceLineNo">074</span>  public String formatZKString() {<a name="line.74"></a>
@@ -106,41 +106,41 @@
 <span class="sourceLineNo">098</span><a name="line.98"></a>
 <span class="sourceLineNo">099</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.99"></a>
 <span class="sourceLineNo">100</span>  {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    if(! p_implData.getDeadServers__IsNotDefault())<a name="line.101"></a>
+<span class="sourceLineNo">101</span>    if(! p_implData.getAssignmentManager__IsNotDefault())<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      p_implData.setDeadServers(null);<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      p_implData.setAssignmentManager(null);<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.105"></a>
+<span class="sourceLineNo">105</span>    if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())<a name="line.105"></a>
 <span class="sourceLineNo">106</span>    {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      p_implData.setFilter("general");<a name="line.107"></a>
+<span class="sourceLineNo">107</span>      p_implData.setCatalogJanitorEnabled(true);<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    }<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())<a name="line.109"></a>
+<span class="sourceLineNo">109</span>    if(! p_implData.getFrags__IsNotDefault())<a name="line.109"></a>
 <span class="sourceLineNo">110</span>    {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      p_implData.setCatalogJanitorEnabled(true);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>      p_implData.setFrags(null);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
 <span class="sourceLineNo">113</span>    if(! p_implData.getServerManager__IsNotDefault())<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
 <span class="sourceLineNo">115</span>      p_implData.setServerManager(null);<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.117"></a>
+<span class="sourceLineNo">117</span>    if(! p_implData.getDeadServers__IsNotDefault())<a name="line.117"></a>
 <span class="sourceLineNo">118</span>    {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      p_implData.setFormat("html");<a name="line.119"></a>
+<span class="sourceLineNo">119</span>      p_implData.setDeadServers(null);<a name="line.119"></a>
 <span class="sourceLineNo">120</span>    }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    if(! p_implData.getMetaLocation__IsNotDefault())<a name="line.121"></a>
+<span class="sourceLineNo">121</span>    if(! p_implData.getServers__IsNotDefault())<a name="line.121"></a>
 <span class="sourceLineNo">122</span>    {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      p_implData.setMetaLocation(null);<a name="line.123"></a>
+<span class="sourceLineNo">123</span>      p_implData.setServers(null);<a name="line.123"></a>
 <span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    if(! p_implData.getAssignmentManager__IsNotDefault())<a name="line.125"></a>
+<span class="sourceLineNo">125</span>    if(! p_implData.getMetaLocation__IsNotDefault())<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      p_implData.setAssignmentManager(null);<a name="line.127"></a>
+<span class="sourceLineNo">127</span>      p_implData.setMetaLocation(null);<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    if(! p_implData.getServers__IsNotDefault())<a name="line.129"></a>
+<span class="sourceLineNo">129</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.129"></a>
 <span class="sourceLineNo">130</span>    {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      p_implData.setServers(null);<a name="line.131"></a>
+<span class="sourceLineNo">131</span>      p_implData.setFilter("general");<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    if(! p_implData.getFrags__IsNotDefault())<a name="line.133"></a>
+<span class="sourceLineNo">133</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.133"></a>
 <span class="sourceLineNo">134</span>    {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      p_implData.setFrags(null);<a name="line.135"></a>
+<span class="sourceLineNo">135</span>      p_implData.setFormat("html");<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
 <span class="sourceLineNo">137</span>    return p_implData;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>  }<a name="line.138"></a>
@@ -148,15 +148,15 @@
 <span class="sourceLineNo">140</span>  {<a name="line.140"></a>
 <span class="sourceLineNo">141</span>    super(p_templateManager, __jamon_setOptionalArguments(p_implData));<a name="line.141"></a>
 <span class="sourceLineNo">142</span>    master = p_implData.getMaster();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    deadServers = p_implData.getDeadServers();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    filter = p_implData.getFilter();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();<a name="line.145"></a>
+<span class="sourceLineNo">143</span>    assignmentManager = p_implData.getAssignmentManager();<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    frags = p_implData.getFrags();<a name="line.145"></a>
 <span class="sourceLineNo">146</span>    serverManager = p_implData.getServerManager();<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    format = p_implData.getFormat();<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    metaLocation = p_implData.getMetaLocation();<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    assignmentManager = p_implData.getAssignmentManager();<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    servers = p_implData.getServers();<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    frags = p_implData.getFrags();<a name="line.151"></a>
+<span class="sourceLineNo">147</span>    deadServers = p_implData.getDeadServers();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    servers = p_implData.getServers();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    metaLocation = p_implData.getMetaLocation();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    filter = p_implData.getFilter();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    format = p_implData.getFormat();<a name="line.151"></a>
 <span class="sourceLineNo">152</span>  }<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  <a name="line.153"></a>
 <span class="sourceLineNo">154</span>  @Override public void renderNoFlush(final java.io.Writer jamonWriter)<a name="line.154"></a>
@@ -170,8 +170,8 @@
 <span class="sourceLineNo">162</span>      // 60, 3<a name="line.162"></a>
 <span class="sourceLineNo">163</span>      {<a name="line.163"></a>
 <span class="sourceLineNo">164</span>        org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_6 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        __jamon__var_6.setFilter(filter);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        __jamon__var_6.setFormat("json" );<a name="line.166"></a>
+<span class="sourceLineNo">165</span>        __jamon__var_6.setFormat("json" );<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        __jamon__var_6.setFilter(filter);<a name="line.166"></a>
 <span class="sourceLineNo">167</span>        __jamon__var_6.renderNoFlush(jamonWriter);<a name="line.167"></a>
 <span class="sourceLineNo">168</span>      }<a name="line.168"></a>
 <span class="sourceLineNo">169</span>      // 60, 68<a name="line.169"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
index 89a8c5a..0b6db7e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
@@ -33,10 +33,10 @@
 <span class="sourceLineNo">025</span>  requiredArguments = {<a name="line.25"></a>
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.28"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.29"></a>
 <span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -77,40 +77,40 @@
 <span class="sourceLineNo">069</span>      return m_regionServer;<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    }<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    private HRegionServer m_regionServer;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // 24, 1<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    public void setBcv(String bcv)<a name="line.73"></a>
+<span class="sourceLineNo">072</span>    // 22, 1<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    public void setFormat(String format)<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      // 24, 1<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      m_bcv = bcv;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      m_bcv__IsNotDefault = true;<a name="line.77"></a>
+<span class="sourceLineNo">075</span>      // 22, 1<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      m_format = format;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      m_format__IsNotDefault = true;<a name="line.77"></a>
 <span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public String getBcv()<a name="line.79"></a>
+<span class="sourceLineNo">079</span>    public String getFormat()<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      return m_bcv;<a name="line.81"></a>
+<span class="sourceLineNo">081</span>      return m_format;<a name="line.81"></a>
 <span class="sourceLineNo">082</span>    }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    private String m_bcv;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    public boolean getBcv__IsNotDefault()<a name="line.84"></a>
+<span class="sourceLineNo">083</span>    private String m_format;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public boolean getFormat__IsNotDefault()<a name="line.84"></a>
 <span class="sourceLineNo">085</span>    {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      return m_bcv__IsNotDefault;<a name="line.86"></a>
+<span class="sourceLineNo">086</span>      return m_format__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    private boolean m_bcv__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
+<span class="sourceLineNo">088</span>    private boolean m_format__IsNotDefault;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // 23, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setBcn(String bcn)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 22, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_format = format;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_format__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 23, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_bcn = bcn;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_bcn__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getFormat()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getBcn()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_format;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_bcn;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_format;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getFormat__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_bcn;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getBcn__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_bcn__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">105</span>    private boolean m_bcn__IsNotDefault;<a name="line.105"></a>
 <span class="sourceLineNo">106</span>    // 21, 1<a name="line.106"></a>
 <span class="sourceLineNo">107</span>    public void setFilter(String filter)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
@@ -128,23 +128,23 @@
 <span class="sourceLineNo">120</span>      return m_filter__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
 <span class="sourceLineNo">122</span>    private boolean m_filter__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 23, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setBcn(String bcn)<a name="line.124"></a>
+<span class="sourceLineNo">123</span>    // 24, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setBcv(String bcv)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 23, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_bcn = bcn;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_bcn__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 24, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_bcv = bcv;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_bcv__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getBcn()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getBcv()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_bcn;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_bcv;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_bcn;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getBcn__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_bcv;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getBcv__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_bcn__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_bcv__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_bcn__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_bcv__IsNotDefault;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -156,17 +156,17 @@
 <span class="sourceLineNo">148</span>    return (ImplData) super.getImplData();<a name="line.148"></a>
 <span class="sourceLineNo">149</span>  }<a name="line.149"></a>
 <span class="sourceLineNo">150</span>  <a name="line.150"></a>
-<span class="sourceLineNo">151</span>  protected String bcv;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.152"></a>
+<span class="sourceLineNo">151</span>  protected String format;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    (getImplData()).setBcv(p_bcv);<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    (getImplData()).setFormat(p_format);<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
-<span class="sourceLineNo">158</span>  protected String format;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String bcn;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setFormat(p_format);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setBcn(p_bcn);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
@@ -177,10 +177,10 @@
 <span class="sourceLineNo">169</span>    return this;<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>  protected String bcn;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String bcv;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setBcn(p_bcn);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setBcv(p_bcv);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
index 89a8c5a..0b6db7e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
@@ -33,10 +33,10 @@
 <span class="sourceLineNo">025</span>  requiredArguments = {<a name="line.25"></a>
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.28"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.29"></a>
 <span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -77,40 +77,40 @@
 <span class="sourceLineNo">069</span>      return m_regionServer;<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    }<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    private HRegionServer m_regionServer;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // 24, 1<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    public void setBcv(String bcv)<a name="line.73"></a>
+<span class="sourceLineNo">072</span>    // 22, 1<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    public void setFormat(String format)<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      // 24, 1<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      m_bcv = bcv;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      m_bcv__IsNotDefault = true;<a name="line.77"></a>
+<span class="sourceLineNo">075</span>      // 22, 1<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      m_format = format;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      m_format__IsNotDefault = true;<a name="line.77"></a>
 <span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public String getBcv()<a name="line.79"></a>
+<span class="sourceLineNo">079</span>    public String getFormat()<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      return m_bcv;<a name="line.81"></a>
+<span class="sourceLineNo">081</span>      return m_format;<a name="line.81"></a>
 <span class="sourceLineNo">082</span>    }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    private String m_bcv;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    public boolean getBcv__IsNotDefault()<a name="line.84"></a>
+<span class="sourceLineNo">083</span>    private String m_format;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public boolean getFormat__IsNotDefault()<a name="line.84"></a>
 <span class="sourceLineNo">085</span>    {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      return m_bcv__IsNotDefault;<a name="line.86"></a>
+<span class="sourceLineNo">086</span>      return m_format__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    private boolean m_bcv__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
+<span class="sourceLineNo">088</span>    private boolean m_format__IsNotDefault;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // 23, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setBcn(String bcn)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 22, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_format = format;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_format__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 23, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_bcn = bcn;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_bcn__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getFormat()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getBcn()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_format;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_bcn;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_format;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getFormat__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_bcn;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getBcn__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_bcn__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">105</span>    private boolean m_bcn__IsNotDefault;<a name="line.105"></a>
 <span class="sourceLineNo">106</span>    // 21, 1<a name="line.106"></a>
 <span class="sourceLineNo">107</span>    public void setFilter(String filter)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
@@ -128,23 +128,23 @@
 <span class="sourceLineNo">120</span>      return m_filter__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
 <span class="sourceLineNo">122</span>    private boolean m_filter__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 23, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setBcn(String bcn)<a name="line.124"></a>
+<span class="sourceLineNo">123</span>    // 24, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setBcv(String bcv)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 23, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_bcn = bcn;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_bcn__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 24, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_bcv = bcv;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_bcv__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getBcn()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getBcv()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_bcn;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_bcv;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_bcn;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getBcn__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_bcv;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getBcv__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_bcn__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_bcv__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_bcn__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_bcv__IsNotDefault;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -156,17 +156,17 @@
 <span class="sourceLineNo">148</span>    return (ImplData) super.getImplData();<a name="line.148"></a>
 <span class="sourceLineNo">149</span>  }<a name="line.149"></a>
 <span class="sourceLineNo">150</span>  <a name="line.150"></a>
-<span class="sourceLineNo">151</span>  protected String bcv;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.152"></a>
+<span class="sourceLineNo">151</span>  protected String format;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    (getImplData()).setBcv(p_bcv);<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    (getImplData()).setFormat(p_format);<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
-<span class="sourceLineNo">158</span>  protected String format;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String bcn;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setFormat(p_format);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setBcn(p_bcn);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
@@ -177,10 +177,10 @@
 <span class="sourceLineNo">169</span>    return this;<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>  protected String bcn;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String bcv;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setBcn(p_bcn);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setBcv(p_bcv);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index 89a8c5a..0b6db7e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -33,10 +33,10 @@
 <span class="sourceLineNo">025</span>  requiredArguments = {<a name="line.25"></a>
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.28"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.29"></a>
 <span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -77,40 +77,40 @@
 <span class="sourceLineNo">069</span>      return m_regionServer;<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    }<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    private HRegionServer m_regionServer;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // 24, 1<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    public void setBcv(String bcv)<a name="line.73"></a>
+<span class="sourceLineNo">072</span>    // 22, 1<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    public void setFormat(String format)<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      // 24, 1<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      m_bcv = bcv;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      m_bcv__IsNotDefault = true;<a name="line.77"></a>
+<span class="sourceLineNo">075</span>      // 22, 1<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      m_format = format;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      m_format__IsNotDefault = true;<a name="line.77"></a>
 <span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public String getBcv()<a name="line.79"></a>
+<span class="sourceLineNo">079</span>    public String getFormat()<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      return m_bcv;<a name="line.81"></a>
+<span class="sourceLineNo">081</span>      return m_format;<a name="line.81"></a>
 <span class="sourceLineNo">082</span>    }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    private String m_bcv;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    public boolean getBcv__IsNotDefault()<a name="line.84"></a>
+<span class="sourceLineNo">083</span>    private String m_format;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public boolean getFormat__IsNotDefault()<a name="line.84"></a>
 <span class="sourceLineNo">085</span>    {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      return m_bcv__IsNotDefault;<a name="line.86"></a>
+<span class="sourceLineNo">086</span>      return m_format__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    private boolean m_bcv__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
+<span class="sourceLineNo">088</span>    private boolean m_format__IsNotDefault;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // 23, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setBcn(String bcn)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 22, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_format = format;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_format__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 23, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_bcn = bcn;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_bcn__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getFormat()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getBcn()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_format;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_bcn;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_format;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getFormat__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_bcn;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getBcn__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_bcn__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">105</span>    private boolean m_bcn__IsNotDefault;<a name="line.105"></a>
 <span class="sourceLineNo">106</span>    // 21, 1<a name="line.106"></a>
 <span class="sourceLineNo">107</span>    public void setFilter(String filter)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
@@ -128,23 +128,23 @@
 <span class="sourceLineNo">120</span>      return m_filter__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
 <span class="sourceLineNo">122</span>    private boolean m_filter__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 23, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setBcn(String bcn)<a name="line.124"></a>
+<span class="sourceLineNo">123</span>    // 24, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setBcv(String bcv)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 23, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_bcn = bcn;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_bcn__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 24, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_bcv = bcv;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_bcv__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getBcn()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getBcv()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_bcn;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_bcv;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_bcn;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getBcn__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_bcv;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getBcv__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_bcn__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_bcv__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_bcn__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_bcv__IsNotDefault;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -156,17 +156,17 @@
 <span class="sourceLineNo">148</span>    return (ImplData) super.getImplData();<a name="line.148"></a>
 <span class="sourceLineNo">149</span>  }<a name="line.149"></a>
 <span class="sourceLineNo">150</span>  <a name="line.150"></a>
-<span class="sourceLineNo">151</span>  protected String bcv;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.152"></a>
+<span class="sourceLineNo">151</span>  protected String format;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    (getImplData()).setBcv(p_bcv);<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    (getImplData()).setFormat(p_format);<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
-<span class="sourceLineNo">158</span>  protected String format;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String bcn;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setFormat(p_format);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setBcn(p_bcn);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
@@ -177,10 +177,10 @@
 <span class="sourceLineNo">169</span>    return this;<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>  protected String bcn;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String bcv;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setBcn(p_bcn);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setBcv(p_bcv);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html
index 8921949..4ce68a2 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html
@@ -293,286 +293,282 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#finalize()">finalize</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#findException(java.lang.Object)">findException</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg0)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.Admin</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getAdmin()">getAdmin</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getAdmin(org.apache.hadoop.hbase.ServerName)">getAdmin</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getAdmin(org.apache.hadoop.hbase.ServerName,%20boolean)">getAdmin</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0,
                 boolean&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.AsyncProcess</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getAsyncProcess()">getAsyncProcess</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getBackoffPolicy()">getBackoffPolicy</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.BufferedMutator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getBufferedMutator(org.apache.hadoop.hbase.client.BufferedMutatorParams)">getBufferedMutator</a></strong>(org.apache.hadoop.hbase.client.BufferedMutatorParams&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.BufferedMutator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getBufferedMutator(org.apache.hadoop.hbase.TableName)">getBufferedMutator</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getCachedLocation(org.apache.hadoop.hbase.TableName,%20byte[])">getCachedLocation</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                   byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ClientService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getClient(org.apache.hadoop.hbase.ServerName)">getClient</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getConfiguration()">getConfiguration</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.MetricsConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getConnectionMetrics()">getConnectionMetrics</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getCurrentBatchPool()">getCurrentBatchPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getCurrentMetaLookupPool()">getCurrentMetaLookupPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getCurrentNrHRS()">getCurrentNrHRS</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getHTableDescriptor(byte[])">getHTableDescriptor</a></strong>(byte[]&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getHTableDescriptor(org.apache.hadoop.hbase.TableName)">getHTableDescriptor</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getHTableDescriptors(java.util.List)">getHTableDescriptors</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getHTableDescriptorsByTableName(java.util.List)">getHTableDescriptorsByTableName</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.TableName&gt;&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.MasterKeepAliveConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getKeepAliveMasterService()">getKeepAliveMasterService</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.client.ZooKeeperKeepAliveConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getKeepAliveZooKeeperWatcher()">getKeepAliveZooKeeperWatcher</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getMaster()">getMaster</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.RpcRetryingCallerFactory</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration)">getNewRpcRetryingCallerFactory</a></strong>(org.apache.hadoop.conf.Configuration&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.NonceGenerator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getNonceGenerator()">getNonceGenerator</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getNumberOfCachedRegionLocations(org.apache.hadoop.hbase.TableName)">getNumberOfCachedRegionLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getRegionCachePrefetch(byte[])">getRegionCachePrefetch</a></strong>(byte[]&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getRegionCachePrefetch(org.apache.hadoop.hbase.TableName)">getRegionCachePrefetch</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getRegionLocation(byte[],%20byte[],%20boolean)">getRegionLocation</a></strong>(byte[]&nbsp;arg0,
                                   byte[]&nbsp;arg1,
                                   boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getRegionLocation(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean)">getRegionLocation</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                   byte[]&nbsp;arg1,
                                   boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.RegionLocator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getRegionLocator(org.apache.hadoop.hbase.TableName)">getRegionLocator</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.ipc.RpcClient</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getRpcClient()">getRpcClient</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.ServerStatisticTracker</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getStatisticsTracker()">getStatisticsTracker</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getStubKey(java.lang.String,%20java.lang.String,%20int,%20boolean)">getStubKey</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0,
                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg1,
                     int&nbsp;arg2,
                     boolean&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getTable(byte[])">getTable</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getTable(byte[],%20java.util.concurrent.ExecutorService)">getTable</a></strong>(byte[]&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getTable(java.lang.String)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getTable(java.lang.String,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getTable(org.apache.hadoop.hbase.TableName)">getTable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getTable(org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getTableNames()">getTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.TableState</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#getTableState(org.apache.hadoop.hbase.TableName)">getTableState</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static org.apache.hadoop.hbase.client.NonceGenerator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#injectNonceGeneratorForTesting(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.hbase.client.NonceGenerator)">injectNonceGeneratorForTesting</a></strong>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;arg0,
                                                             org.apache.hadoop.hbase.client.NonceGenerator&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isAborted()">isAborted</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isClosed()">isClosed</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isDeadServer(org.apache.hadoop.hbase.ServerName)">isDeadServer</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isMasterRunning()">isMasterRunning</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isTableAvailable(byte[])">isTableAvailable</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isTableAvailable(byte[],%20byte[][])">isTableAvailable</a></strong>(byte[]&nbsp;arg0,
                                 byte[][]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isTableAvailable(org.apache.hadoop.hbase.TableName)">isTableAvailable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isTableAvailable(org.apache.hadoop.hbase.TableName,%20byte[][])">isTableAvailable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                 byte[][]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isTableDisabled(byte[])">isTableDisabled</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isTableDisabled(org.apache.hadoop.hbase.TableName)">isTableDisabled</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isTableEnabled(byte[])">isTableEnabled</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#isTableEnabled(org.apache.hadoop.hbase.TableName)">isTableEnabled</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.TableName[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#listTableNames()">listTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#listTables()">listTables</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#locateRegion(byte[])">locateRegion</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#locateRegion(byte[],%20byte[])">locateRegion</a></strong>(byte[]&nbsp;arg0,
                         byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean)">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1,
                         boolean&nbsp;arg2,
                         boolean&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1,
@@ -580,27 +576,27 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                         boolean&nbsp;arg3,
                         int&nbsp;arg4)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#locateRegions(byte[])">locateRegions</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#locateRegions(byte[],%20boolean,%20boolean)">locateRegions</a></strong>(byte[]&nbsp;arg0,
                           boolean&nbsp;arg1,
                           boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#locateRegions(org.apache.hadoop.hbase.TableName)">locateRegions</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#locateRegions(org.apache.hadoop.hbase.TableName,%20boolean,%20boolean)">locateRegions</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                           boolean&nbsp;arg1,
                           boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#processBatch(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                         byte[]&nbsp;arg1,
@@ -609,7 +605,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                         org.apache.hadoop.hbase.TableName&nbsp;arg1,
@@ -618,7 +614,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#processBatchCallback(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                                         byte[]&nbsp;arg1,
@@ -628,7 +624,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#processBatchCallback(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                                         org.apache.hadoop.hbase.TableName&nbsp;arg1,
@@ -638,67 +634,67 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#releaseMaster(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">releaseMaster</a></strong>(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#releaseZooKeeperWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">releaseZooKeeperWatcher</a></strong>(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#relocateRegion(byte[],%20byte[])">relocateRegion</a></strong>(byte[]&nbsp;arg0,
                             byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">relocateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                             byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20int)">relocateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                             byte[]&nbsp;arg1,
                             int&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#retrieveClusterId()">retrieveClusterId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#setRegionCachePrefetch(byte[],%20boolean)">setRegionCachePrefetch</a></strong>(byte[]&nbsp;arg0,
                                             boolean&nbsp;arg1)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#setRegionCachePrefetch(org.apache.hadoop.hbase.TableName,%20boolean)">setRegionCachePrefetch</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                             boolean&nbsp;arg1)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#toString()">toString</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#updateCachedLocation(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName,%20long)">updateCachedLocation</a></strong>(org.apache.hadoop.hbase.HRegionInfo&nbsp;arg0,
                                         org.apache.hadoop.hbase.ServerName&nbsp;arg1,
                                         org.apache.hadoop.hbase.ServerName&nbsp;arg2,
                                         long&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#updateCachedLocations(byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(byte[]&nbsp;arg0,
                                           byte[]&nbsp;arg1,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg2,
                                           org.apache.hadoop.hbase.HRegionLocation&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.ServerName)">updateCachedLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                           byte[]&nbsp;arg1,
@@ -706,7 +702,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg3,
                                           org.apache.hadoop.hbase.ServerName&nbsp;arg4)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                           byte[]&nbsp;arg1,
@@ -893,15 +889,6 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                                                                            org.apache.hadoop.hbase.client.NonceGenerator&nbsp;arg1)</pre>
 </li>
 </ul>
-<a name="findException(java.lang.Object)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>findException</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.0">findException</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg0)</pre>
-</li>
-</ul>
 <a name="getTable(java.lang.String)">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html
index 396ceeb..4bba518 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html
@@ -279,286 +279,282 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#finalize()">finalize</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#findException(java.lang.Object)">findException</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg0)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.Admin</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getAdmin()">getAdmin</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getAdmin(org.apache.hadoop.hbase.ServerName)">getAdmin</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getAdmin(org.apache.hadoop.hbase.ServerName,%20boolean)">getAdmin</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0,
                 boolean&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.AsyncProcess</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getAsyncProcess()">getAsyncProcess</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getBackoffPolicy()">getBackoffPolicy</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.BufferedMutator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getBufferedMutator(org.apache.hadoop.hbase.client.BufferedMutatorParams)">getBufferedMutator</a></strong>(org.apache.hadoop.hbase.client.BufferedMutatorParams&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.BufferedMutator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getBufferedMutator(org.apache.hadoop.hbase.TableName)">getBufferedMutator</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getCachedLocation(org.apache.hadoop.hbase.TableName,%20byte[])">getCachedLocation</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                   byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ClientService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getClient(org.apache.hadoop.hbase.ServerName)">getClient</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getConfiguration()">getConfiguration</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.MetricsConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getConnectionMetrics()">getConnectionMetrics</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getCurrentBatchPool()">getCurrentBatchPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getCurrentMetaLookupPool()">getCurrentMetaLookupPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getCurrentNrHRS()">getCurrentNrHRS</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getHTableDescriptor(byte[])">getHTableDescriptor</a></strong>(byte[]&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getHTableDescriptor(org.apache.hadoop.hbase.TableName)">getHTableDescriptor</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getHTableDescriptors(java.util.List)">getHTableDescriptors</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getHTableDescriptorsByTableName(java.util.List)">getHTableDescriptorsByTableName</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.TableName&gt;&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.MasterKeepAliveConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getKeepAliveMasterService()">getKeepAliveMasterService</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.client.ZooKeeperKeepAliveConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getKeepAliveZooKeeperWatcher()">getKeepAliveZooKeeperWatcher</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getMaster()">getMaster</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.RpcRetryingCallerFactory</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration)">getNewRpcRetryingCallerFactory</a></strong>(org.apache.hadoop.conf.Configuration&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.NonceGenerator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getNonceGenerator()">getNonceGenerator</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getNumberOfCachedRegionLocations(org.apache.hadoop.hbase.TableName)">getNumberOfCachedRegionLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getRegionCachePrefetch(byte[])">getRegionCachePrefetch</a></strong>(byte[]&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getRegionCachePrefetch(org.apache.hadoop.hbase.TableName)">getRegionCachePrefetch</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getRegionLocation(byte[],%20byte[],%20boolean)">getRegionLocation</a></strong>(byte[]&nbsp;arg0,
                                   byte[]&nbsp;arg1,
                                   boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getRegionLocation(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean)">getRegionLocation</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                   byte[]&nbsp;arg1,
                                   boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.RegionLocator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getRegionLocator(org.apache.hadoop.hbase.TableName)">getRegionLocator</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.ipc.RpcClient</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getRpcClient()">getRpcClient</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.ServerStatisticTracker</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getStatisticsTracker()">getStatisticsTracker</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getStubKey(java.lang.String,%20java.lang.String,%20int,%20boolean)">getStubKey</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0,
                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg1,
                     int&nbsp;arg2,
                     boolean&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getTable(byte[])">getTable</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getTable(byte[],%20java.util.concurrent.ExecutorService)">getTable</a></strong>(byte[]&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getTable(java.lang.String)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getTable(java.lang.String,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getTable(org.apache.hadoop.hbase.TableName)">getTable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getTable(org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getTableNames()">getTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.TableState</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#getTableState(org.apache.hadoop.hbase.TableName)">getTableState</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static org.apache.hadoop.hbase.client.NonceGenerator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#injectNonceGeneratorForTesting(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.hbase.client.NonceGenerator)">injectNonceGeneratorForTesting</a></strong>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;arg0,
                                                             org.apache.hadoop.hbase.client.NonceGenerator&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isAborted()">isAborted</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isClosed()">isClosed</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isDeadServer(org.apache.hadoop.hbase.ServerName)">isDeadServer</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isMasterRunning()">isMasterRunning</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isTableAvailable(byte[])">isTableAvailable</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isTableAvailable(byte[],%20byte[][])">isTableAvailable</a></strong>(byte[]&nbsp;arg0,
                                 byte[][]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isTableAvailable(org.apache.hadoop.hbase.TableName)">isTableAvailable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isTableAvailable(org.apache.hadoop.hbase.TableName,%20byte[][])">isTableAvailable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                 byte[][]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isTableDisabled(byte[])">isTableDisabled</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isTableDisabled(org.apache.hadoop.hbase.TableName)">isTableDisabled</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isTableEnabled(byte[])">isTableEnabled</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#isTableEnabled(org.apache.hadoop.hbase.TableName)">isTableEnabled</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.TableName[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#listTableNames()">listTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#listTables()">listTables</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#locateRegion(byte[])">locateRegion</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#locateRegion(byte[],%20byte[])">locateRegion</a></strong>(byte[]&nbsp;arg0,
                         byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean)">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1,
                         boolean&nbsp;arg2,
                         boolean&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1,
@@ -566,27 +562,27 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                         boolean&nbsp;arg3,
                         int&nbsp;arg4)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#locateRegions(byte[])">locateRegions</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#locateRegions(byte[],%20boolean,%20boolean)">locateRegions</a></strong>(byte[]&nbsp;arg0,
                           boolean&nbsp;arg1,
                           boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#locateRegions(org.apache.hadoop.hbase.TableName)">locateRegions</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#locateRegions(org.apache.hadoop.hbase.TableName,%20boolean,%20boolean)">locateRegions</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                           boolean&nbsp;arg1,
                           boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#processBatch(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                         byte[]&nbsp;arg1,
@@ -595,7 +591,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                         org.apache.hadoop.hbase.TableName&nbsp;arg1,
@@ -604,7 +600,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#processBatchCallback(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                                         byte[]&nbsp;arg1,
@@ -614,7 +610,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#processBatchCallback(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                                         org.apache.hadoop.hbase.TableName&nbsp;arg1,
@@ -624,67 +620,67 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#releaseMaster(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">releaseMaster</a></strong>(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#releaseZooKeeperWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">releaseZooKeeperWatcher</a></strong>(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#relocateRegion(byte[],%20byte[])">relocateRegion</a></strong>(byte[]&nbsp;arg0,
                             byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">relocateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                             byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20int)">relocateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                             byte[]&nbsp;arg1,
                             int&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#retrieveClusterId()">retrieveClusterId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#setRegionCachePrefetch(byte[],%20boolean)">setRegionCachePrefetch</a></strong>(byte[]&nbsp;arg0,
                                             boolean&nbsp;arg1)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#setRegionCachePrefetch(org.apache.hadoop.hbase.TableName,%20boolean)">setRegionCachePrefetch</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                             boolean&nbsp;arg1)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#toString()">toString</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#updateCachedLocation(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName,%20long)">updateCachedLocation</a></strong>(org.apache.hadoop.hbase.HRegionInfo&nbsp;arg0,
                                         org.apache.hadoop.hbase.ServerName&nbsp;arg1,
                                         org.apache.hadoop.hbase.ServerName&nbsp;arg2,
                                         long&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#updateCachedLocations(byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(byte[]&nbsp;arg0,
                                           byte[]&nbsp;arg1,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg2,
                                           org.apache.hadoop.hbase.HRegionLocation&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.ServerName)">updateCachedLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                           byte[]&nbsp;arg1,
@@ -692,7 +688,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg3,
                                           org.apache.hadoop.hbase.ServerName&nbsp;arg4)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                           byte[]&nbsp;arg1,
@@ -851,15 +847,6 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                                                                            org.apache.hadoop.hbase.client.NonceGenerator&nbsp;arg1)</pre>
 </li>
 </ul>
-<a name="findException(java.lang.Object)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>findException</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.0">findException</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg0)</pre>
-</li>
-</ul>
 <a name="getTable(java.lang.String)">
 <!--   -->
 </a>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html
index d0040f6..3180076 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html
@@ -61,1780 +61,1781 @@
 <span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.TableName;<a name="line.53"></a>
 <span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.backoff.ServerStatistics;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.htrace.Trace;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>import com.google.common.annotations.VisibleForTesting;<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> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * synchronous caller such as HTable.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * &lt;p&gt;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * to track operation progress.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * &lt;/p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * The class manages internally the retries.<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;/p&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;p&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;/p&gt;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * &lt;p&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * retrieving errors from different threads may be not thread safe.<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * arising from older operations.<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * &lt;/p&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * gets as well.<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;/p&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>@InterfaceAudience.Private<a name="line.98"></a>
-<span class="sourceLineNo">099</span>class AsyncProcess {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * this stage.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   */<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      "hbase.client.start.log.errors.counter";<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  /**<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * The context used to wait for results from one submit call.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   *  */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public static interface AsyncRequestFuture {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    public boolean hasError();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /**<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * Return value from a submit that didn't contain any requests.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    final Object[] result = new Object[0];<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public boolean hasError() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      return null;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>    @Override<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      return null;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    @Override<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    public Object[] getResults() {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      return result;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  };<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * the replica calls are launched. See results for details of this process.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private static class ReplicaResultState {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public ReplicaResultState(int callCount) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      this.callCount = callCount;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    int callCount;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    BatchErrors replicaErrors = null;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    @Override<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    public String toString() {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.htrace.Trace;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>import com.google.common.annotations.VisibleForTesting;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * synchronous caller such as HTable.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * &lt;p&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.68"></a>
+<span class="sourceLineNo">069</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * to track operation progress.<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;/p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * The class manages internally the retries.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;/p&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;p&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;/p&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * retrieving errors from different threads may be not thread safe.<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * arising from older operations.<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;/p&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;p&gt;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * gets as well.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/p&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>@InterfaceAudience.Private<a name="line.99"></a>
+<span class="sourceLineNo">100</span>class AsyncProcess {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * this stage.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      "hbase.client.start.log.errors.counter";<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * The context used to wait for results from one submit call.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   *  */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public static interface AsyncRequestFuture {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public boolean hasError();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Return value from a submit that didn't contain any requests.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final Object[] result = new Object[0];<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    public boolean hasError() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      return false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      return null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>    @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return null;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    public Object[] getResults() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      return result;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  };<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   * the replica calls are launched. See results for details of this process.<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private static class ReplicaResultState {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public ReplicaResultState(int callCount) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      this.callCount = callCount;<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>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    int callCount;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    BatchErrors replicaErrors = null;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    public String toString() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  // TODO: many of the fields should be made private<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  protected final long id;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  protected final ClusterConnection connection;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected final RpcRetryingCallerFactory rpcCallerFactory;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  protected final RpcControllerFactory rpcFactory;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  protected final BatchErrors globalErrors;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  protected final ExecutorService pool;<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  protected final AtomicLong tasksInProgress = new AtomicLong(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  protected final ConcurrentMap&lt;byte[], AtomicInteger&gt; taskCounterPerRegion =<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      new ConcurrentSkipListMap&lt;byte[], AtomicInteger&gt;(Bytes.BYTES_COMPARATOR);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected final ConcurrentMap&lt;ServerName, AtomicInteger&gt; taskCounterPerServer =<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      new ConcurrentHashMap&lt;ServerName, AtomicInteger&gt;();<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  // Start configuration settings.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final int startLogErrorsCnt;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  /**<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * The number of tasks simultaneously executed on the cluster.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  protected final int maxTotalConcurrentTasks;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * The number of tasks we run in parallel on a single region.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * With 1 (the default) , we ensure that the ordering of the queries is respected: we don't start<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * a set of operations on a region before the previous one is done. As well, this limits<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * the pressure we put on the region server.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  protected final int maxConcurrentTasksPerRegion;<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * The number of task simultaneously executed on a single region server.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  protected final int maxConcurrentTasksPerServer;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  protected final long pause;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  protected int numTries;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  protected int serverTrackerTimeout;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected int timeout;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  protected long primaryCallTimeoutMicroseconds;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // End configuration settings.<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  protected static class BatchErrors {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final List&lt;Throwable&gt; throwables = new ArrayList&lt;Throwable&gt;();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final List&lt;Row&gt; actions = new ArrayList&lt;Row&gt;();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    private final List&lt;String&gt; addresses = new ArrayList&lt;String&gt;();<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    public synchronized void add(Throwable ex, Row row, ServerName serverName) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (row == null){<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        throw new IllegalArgumentException("row cannot be null. location=" + serverName);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>      throwables.add(ex);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      actions.add(row);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      addresses.add(serverName != null ? serverName.toString() : "null");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public boolean hasErrors() {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return !throwables.isEmpty();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private synchronized RetriesExhaustedWithDetailsException makeException() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      return new RetriesExhaustedWithDetailsException(<a name="line.245"></a>
-<span class="sourceLineNo">246</span>          new ArrayList&lt;Throwable&gt;(throwables),<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          new ArrayList&lt;Row&gt;(actions), new ArrayList&lt;String&gt;(addresses));<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>    public synchronized void clear() {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      throwables.clear();<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      actions.clear();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      addresses.clear();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public synchronized void merge(BatchErrors other) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      throwables.addAll(other.throwables);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      actions.addAll(other.actions);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      addresses.addAll(other.addresses);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  public AsyncProcess(ClusterConnection hc, Configuration conf, ExecutorService pool,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcRetryingCallerFactory rpcCaller, boolean useGlobalErrors,<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      RpcControllerFactory rpcFactory) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    if (hc == null) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      throw new IllegalArgumentException("HConnection cannot be null.");<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>    this.connection = hc;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    this.pool = pool;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    this.globalErrors = useGlobalErrors ? new BatchErrors() : null;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    this.id = COUNTER.incrementAndGet();<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // how many times we could try in total, one more than retry number<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    this.numTries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER) + 1;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    this.timeout = conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    this.primaryCallTimeoutMicroseconds = conf.getInt(PRIMARY_CALL_TIMEOUT_KEY, 10000);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    this.maxTotalConcurrentTasks = conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    this.maxConcurrentTasksPerServer = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERSERVER_TASKS,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERSERVER_TASKS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.maxConcurrentTasksPerRegion = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERREGION_TASKS,<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERREGION_TASKS);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.startLogErrorsCnt =<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        conf.getInt(START_LOG_ERRORS_AFTER_COUNT_KEY, DEFAULT_START_LOG_ERRORS_AFTER_COUNT);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (this.maxTotalConcurrentTasks &lt;= 0) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throw new IllegalArgumentException("maxTotalConcurrentTasks=" + maxTotalConcurrentTasks);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (this.maxConcurrentTasksPerServer &lt;= 0) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      throw new IllegalArgumentException("maxConcurrentTasksPerServer=" +<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          maxConcurrentTasksPerServer);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    if (this.maxConcurrentTasksPerRegion &lt;= 0) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      throw new IllegalArgumentException("maxConcurrentTasksPerRegion=" +<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          maxConcurrentTasksPerRegion);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Server tracker allows us to do faster, and yet useful (hopefully), retries.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // However, if we are too useful, we might fail very quickly due to retry count limit.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // To avoid this, we are going to cheat for now (see HBASE-7659), and calculate maximum<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    // retry time if normal retries were used. Then we will retry until this time runs out.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // If we keep hitting one server, the net effect will be the incremental backoff, and<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    // essentially the same number of retries as planned. If we have to do faster retries,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // we will do more retries in aggregate, but the user will be none the wiser.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    this.serverTrackerTimeout = 0;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (int i = 0; i &lt; this.numTries; ++i) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      serverTrackerTimeout += ConnectionUtils.getPauseTime(this.pause, i);<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>    this.rpcCallerFactory = rpcCaller;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    this.rpcFactory = rpcFactory;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @return pool if non null, otherwise returns this.pool if non null, otherwise throws<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   *         RuntimeException<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  private ExecutorService getPool(ExecutorService pool) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (pool != null) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      return pool;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    if (this.pool != null) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      return this.pool;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    throw new RuntimeException("Neither AsyncProcess nor request have ExecutorService");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  /**<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * See {@link #submit(ExecutorService, TableName, List, boolean, Batch.Callback, boolean)}.<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public &lt;CResult&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback, boolean needResults)<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      throws InterruptedIOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return submit(null, tableName, rows, atLeastOne, callback, needResults);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  /**<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * Extract from the rows list what we can submit. The rows we can not submit are kept in the<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * list. Does not send requests to replicas (not currently used for anything other<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * than streaming puts anyway).<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   *<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * @param pool ExecutorService to use.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * @param tableName The table for which this request is needed.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * @param callback Batch callback. Only called on success (94 behavior).<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * @param needResults Whether results are needed, or can be discarded.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @param rows - the submitted row. Modified by the method: we remove the rows we took.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * @param atLeastOne true if we should submit at least a subset.<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   */<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  public &lt;CResult&gt; AsyncRequestFuture submit(ExecutorService pool, TableName tableName,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      List&lt;? extends Row&gt; rows, boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      boolean needResults) throws InterruptedIOException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (rows.isEmpty()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return NO_REQS_RESULT;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    List&lt;Action&lt;Row&gt;&gt; retainedActions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    long nonceGroup = ng.getNonceGroup(); // Currently, nonce group is per entire client.<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    // Location errors that happen before we decide what requests to take.<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    List&lt;Exception&gt; locationErrors = null;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    List&lt;Integer&gt; locationErrorRows = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    do {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      // Wait until there is at least one slot for a new task.<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      waitForMaximumCurrentTasks(maxTotalConcurrentTasks - 1);<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>      // Remember the previous decisions about regions or region servers we put in the<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      //  final multi.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      Map&lt;Long, Boolean&gt; regionIncluded = new HashMap&lt;Long, Boolean&gt;();<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      Map&lt;ServerName, Boolean&gt; serverIncluded = new HashMap&lt;ServerName, Boolean&gt;();<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>      int posInList = -1;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      Iterator&lt;? extends Row&gt; it = rows.iterator();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      while (it.hasNext()) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        Row r = it.next();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        HRegionLocation loc;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (r == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            throw new IllegalArgumentException("#" + id + ", row cannot be null");<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          // Make sure we get 0-s replica.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          RegionLocations locs = connection.locateRegion(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>              tableName, r.getRow(), true, true, RegionReplicaUtil.DEFAULT_REPLICA_ID);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (locs == null || locs.isEmpty() || locs.getDefaultRegionLocation() == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            throw new IOException("#" + id + ", no location found, aborting submit for"<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                + " tableName=" + tableName + " rowkey=" + Bytes.toStringBinary(r.getRow()));<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          loc = locs.getDefaultRegionLocation();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        } catch (IOException ex) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          locationErrors = new ArrayList&lt;Exception&gt;();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          locationErrorRows = new ArrayList&lt;Integer&gt;();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error("Failed to get region location ", ex);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          // This action failed before creating ars. Retain it, but do not add to submit list.<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          // We will then add it to ars in an already-failed state.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          retainedActions.add(new Action&lt;Row&gt;(r, ++posInList));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          locationErrors.add(ex);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>          locationErrorRows.add(posInList);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          it.remove();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>          break; // Backward compat: we stop considering actions on location error.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>        if (canTakeOperation(loc, regionIncluded, serverIncluded)) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, ++posInList);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>          setNonce(ng, r, action);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          retainedActions.add(action);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          // TODO: replica-get is not supported on this path<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          byte[] regionName = loc.getRegionInfo().getRegionName();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          addAction(loc.getServerName(), regionName, action, actionsByServer, nonceGroup);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          it.remove();<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>    } while (retainedActions.isEmpty() &amp;&amp; atLeastOne &amp;&amp; (locationErrors == null));<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>    if (retainedActions.isEmpty()) return NO_REQS_RESULT;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return submitMultiActions(tableName, retainedActions, nonceGroup, callback, null, needResults,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      locationErrors, locationErrorRows, actionsByServer, pool);<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>  &lt;CResult&gt; AsyncRequestFuture submitMultiActions(TableName tableName,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      List&lt;Action&lt;Row&gt;&gt; retainedActions, long nonceGroup, Batch.Callback&lt;CResult&gt; callback,<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Object[] results, boolean needResults, List&lt;Exception&gt; locationErrors,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      List&lt;Integer&gt; locationErrorRows, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      ExecutorService pool) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      tableName, retainedActions, nonceGroup, pool, callback, results, needResults);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Add location errors if any<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    if (locationErrors != null) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      for (int i = 0; i &lt; locationErrors.size(); ++i) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        int originalIndex = locationErrorRows.get(i);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        Row row = retainedActions.get(originalIndex).getAction();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        ars.manageError(originalIndex, row,<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          Retry.NO_LOCATION_PROBLEM, locationErrors.get(i), null);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    ars.sendMultiAction(actionsByServer, 1, null, false);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return ars;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Helper that is used when grouping the actions per region server.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   *<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param loc - the destination. Must not be null.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @param action - the action to add to the multiaction<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @param actionsByServer the multiaction per server<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param nonceGroup Nonce group.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private static void addAction(ServerName server, byte[] regionName, Action&lt;Row&gt; action,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer, long nonceGroup) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    MultiAction&lt;Row&gt; multiAction = actionsByServer.get(server);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (multiAction == null) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      multiAction = new MultiAction&lt;Row&gt;();<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      actionsByServer.put(server, multiAction);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (action.hasNonce() &amp;&amp; !multiAction.hasNonceGroup()) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      multiAction.setNonceGroup(nonceGroup);<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>    multiAction.add(regionName, action);<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>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Check if we should send new operations to this region or region server.<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * We're taking into account the past decision; if we have already accepted<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * operation on a given region, we accept all operations for this region.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   *<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param loc; the region and the server name we want to use.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @return true if this region is considered as busy.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  protected boolean canTakeOperation(HRegionLocation loc,<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                                     Map&lt;Long, Boolean&gt; regionsIncluded,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                                     Map&lt;ServerName, Boolean&gt; serversIncluded) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    long regionId = loc.getRegionInfo().getRegionId();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    Boolean regionPrevious = regionsIncluded.get(regionId);<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (regionPrevious != null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // We already know what to do with this region.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      return regionPrevious;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span>    Boolean serverPrevious = serversIncluded.get(loc.getServerName());<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    if (Boolean.FALSE.equals(serverPrevious)) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // It's a new region, on a region server that we have already excluded.<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return false;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    AtomicInteger regionCnt = taskCounterPerRegion.get(loc.getRegionInfo().getRegionName());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (regionCnt != null &amp;&amp; regionCnt.get() &gt;= maxConcurrentTasksPerRegion) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Too many tasks on this region already.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      return false;<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>    if (serverPrevious == null) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      // The region is ok, but we need to decide for this region server.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      int newServers = 0; // number of servers we're going to contact so far<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      for (Map.Entry&lt;ServerName, Boolean&gt; kv : serversIncluded.entrySet()) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (kv.getValue()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          newServers++;<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // Do we have too many total tasks already?<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      boolean ok = (newServers + tasksInProgress.get()) &lt; maxTotalConcurrentTasks;<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      if (ok) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>        // If the total is fine, is it ok for this individual server?<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        AtomicInteger serverCnt = taskCounterPerServer.get(loc.getServerName());<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        ok = (serverCnt == null || serverCnt.get() &lt; maxConcurrentTasksPerServer);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      if (!ok) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        serversIncluded.put(loc.getServerName(), Boolean.FALSE);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        return false;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>      serversIncluded.put(loc.getServerName(), Boolean.TRUE);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    } else {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      assert serverPrevious.equals(Boolean.TRUE);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    regionsIncluded.put(regionId, Boolean.TRUE);<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return true;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * See {@link #submitAll(ExecutorService, TableName, List, Batch.Callback, Object[])}.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   */<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(TableName tableName,<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    return submitAll(null, tableName, rows, callback, results);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
-<span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * Submit immediately the list of rows, whatever the server status. Kept for backward<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * compatibility: it allows to be used with the batch interface that return an array of objects.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   *<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * @param pool ExecutorService to use.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * @param tableName name of the table for which the submission is made.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param rows the list of rows.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param callback the callback.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @param results Optional array to return the results thru; backward compat.<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(ExecutorService pool, TableName tableName,<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    List&lt;Action&lt;Row&gt;&gt; actions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.563"></a>
-<span class="sourceLineNo">564</span><a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // The position will be used by the processBatch to match the object array returned.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    int posInList = -1;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    for (Row r : rows) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      posInList++;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (r instanceof Put) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        Put put = (Put) r;<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        if (put.isEmpty()) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          throw new IllegalArgumentException("No columns to insert for #" + (posInList+1)+ " item");<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, posInList);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      setNonce(ng, r, action);<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      actions.add(action);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        tableName, actions, ng.getNonceGroup(), getPool(pool), callback, results, results != null);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ars.groupAndSendMultiAction(actions, 1);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return ars;<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>  private static void setNonce(NonceGenerator ng, Row r, Action&lt;Row&gt; action) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (!(r instanceof Append) &amp;&amp; !(r instanceof Increment)) return;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    action.setNonce(ng.newNonce()); // Action handles NO_NONCE, so it's ok if ng is disabled.<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span><a name="line.590"></a>
-<span class="sourceLineNo">591</span>  /**<a name="line.591"></a>
-<span class="sourceLineNo">592</span>   * The context, and return value, for a single submit/submitAll call.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * Note on how this class (one AP submit) works. Initially, all requests are split into groups<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * by server; request is sent to each server in parallel; the RPC calls are not async so a<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * thread per server is used. Every time some actions fail, regions/locations might have<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * changed, so we re-group them by server and region again and send these groups in parallel<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * too. The result, in case of retries, is a "tree" of threads, with parent exiting after<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * scheduling children. This is why lots of code doesn't require any synchronization.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  protected class AsyncRequestFutureImpl&lt;CResult&gt; implements AsyncRequestFuture {<a name="line.600"></a>
-<span class="sourceLineNo">601</span><a name="line.601"></a>
-<span class="sourceLineNo">602</span>    /**<a name="line.602"></a>
-<span class="sourceLineNo">603</span>     * Runnable (that can be submitted to thread pool) that waits for when it's time<a name="line.603"></a>
-<span class="sourceLineNo">604</span>     * to issue replica calls, finds region replicas, groups the requests by replica and<a name="line.604"></a>
-<span class="sourceLineNo">605</span>     * issues the calls (on separate threads, via sendMultiAction).<a name="line.605"></a>
-<span class="sourceLineNo">606</span>     * This is done on a separate thread because we don't want to wait on user thread for<a name="line.606"></a>
-<span class="sourceLineNo">607</span>     * our asynchronous call, and usually we have to wait before making replica calls.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>     */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    private final class ReplicaCallIssuingRunnable implements Runnable {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      private final long startTime;<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      private final List&lt;Action&lt;Row&gt;&gt; initialActions;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>      public ReplicaCallIssuingRunnable(List&lt;Action&lt;Row&gt;&gt; initialActions, long startTime) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.initialActions = initialActions;<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        this.startTime = startTime;<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>      @Override<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      public void run() {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        boolean done = false;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        if (primaryCallTimeoutMicroseconds &gt; 0) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>          try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>            done = waitUntilDone(startTime * 1000L + primaryCallTimeoutMicroseconds);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          } catch (InterruptedException ex) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>            LOG.error("Replica thread was interrupted - no replica calls: " + ex.getMessage());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            return;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>          }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        if (done) return; // Done within primary timeout<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        List&lt;Action&lt;Row&gt;&gt; unknownLocActions = new ArrayList&lt;Action&lt;Row&gt;&gt;();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        if (replicaGetIndices == null) {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>          for (int i = 0; i &lt; results.length; ++i) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>            addReplicaActions(i, actionsByServer, unknownLocActions);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          }<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        } else {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>          for (int replicaGetIndice : replicaGetIndices) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>            addReplicaActions(replicaGetIndice, actionsByServer, unknownLocActions);<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>        if (!actionsByServer.isEmpty()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          sendMultiAction(actionsByServer, 1, null, unknownLocActions.isEmpty());<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        }<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        if (!unknownLocActions.isEmpty()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>          actionsByServer = new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          for (Action&lt;Row&gt; action : unknownLocActions) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>            addReplicaActionsAgain(action, actionsByServer);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          // Some actions may have completely failed, they are handled inside addAgain.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>          if (!actionsByServer.isEmpty()) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>            sendMultiAction(actionsByServer, 1, null, true);<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>      }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>      /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>       * Add replica actions to action map by server.<a name="line.658"></a>
-<span class="sourceLineNo">659</span>       * @param index Index of the original action.<a name="line.659"></a>
-<span class="sourceLineNo">660</span>       * @param actionsByServer The map by server to add it to.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>       */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      private void addReplicaActions(int index, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.662"></a>
-<span class="sourceLineNo">663</span>          List&lt;Action&lt;Row&gt;&gt; unknownReplicaActions) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>        if (results[index] != null) return; // opportunistic. Never goes from non-null to null.<a name="line.664"></a>
-<span class="sourceLineNo">665</span>        Action&lt;Row&gt; action = initialActions.get(index);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        RegionLocations loc = findAllLocationsOrFail(action, true);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>        if (loc == null) return;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>        HRegionLocation[] locs = loc.getRegionLocations();<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        if (locs.length == 1) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>          LOG.warn("No replicas found for " + action.getAction());<a name="line.670"></a>
-<span class="sourceLineNo">671</span>          return;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        synchronized (replicaResultLock) {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          // Don't run replica calls if the original has finished. We could do it e.g. if<a name="line.674"></a>
-<span class="sourceLineNo">675</span>          // original has already failed before first replica call (unlikely given retries),<a name="line.675"></a>
-<span class="sourceLineNo">676</span>          // but that would require additional synchronization w.r.t. returning to caller.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          if (results[index] != null) return;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // We set the number of calls here. After that any path must call setResult/setError.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          // True even for replicas that are not found - if we refuse to send we MUST set error.<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          results[index] = new ReplicaResultState(locs.length);<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        for (int i = 1; i &lt; locs.length; ++i) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          Action&lt;Row&gt; replicaAction = new Action&lt;Row&gt;(action, i);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          if (locs[i] != null) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>            addAction(locs[i].getServerName(), locs[i].getRegionInfo().getRegionName(),<a name="line.685"></a>
-<span class="sourceLineNo">686</span>                replicaAction, actionsByServer, nonceGroup);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          } else {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>            unknownReplicaActions.add(replicaAction);<a name="line.688"></a>
-<span class="sourceLineNo">689</span>          }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      }<a name="line.691"></a>
-<span class="sourceLineNo">692</span><a name="line.692"></a>
-<span class="sourceLineNo">693</span>      private void addReplicaActionsAgain(<a name="line.693"></a>
-<span class="sourceLineNo">694</span>          Action&lt;Row&gt; action, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        if (action.getReplicaId() == RegionReplicaUtil.DEFAULT_REPLICA_ID) {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          throw new AssertionError("Cannot have default replica here");<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        HRegionLocation loc = getReplicaLocationOrFail(action);<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        if (loc == null) return;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        addAction(loc.getServerName(), loc.getRegionInfo().getRegionName(),<a name="line.700"></a>
-<span class="sourceLineNo">701</span>            action, actionsByServer, nonceGroup);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>    /**<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     * Runnable (that can be submitted to thread pool) that submits MultiAction to a<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * single server. The server call is synchronous, therefore we do it on a thread pool.<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     */<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    private final class SingleServerRequestRunnable implements Runnable {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      private final MultiAction&lt;Row&gt; multiAction;<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      private final int numAttempt;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      private final ServerName server;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>      private SingleServerRequestRunnable(<a name="line.715"></a>
-<span class="sourceLineNo">716</span>          MultiAction&lt;Row&gt; multiAction, int numAttempt, ServerName server,<a name="line.716"></a>
-<span class="sourceLineNo">717</span>          Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>        this.multiAction = multiAction;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        this.numAttempt = numAttempt;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        this.server = server;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        this.callsInProgress = callsInProgress;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>      @Override<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      public void run() {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        MultiResponse res;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        MultiServerCallable&lt;Row&gt; callable = null;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>        try {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>          callable = createCallable(server, tableName, multiAction);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>          try {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>            RpcRetryingCaller&lt;MultiResponse&gt; caller = createCaller(callable);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>            if (callsInProgress != null) callsInProgress.add(callable);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>            res = caller.callWithoutRetries(callable, timeout);<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span>            if (res == null) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>              // Cancelled<a name="line.736"></a>
-<span class="sourceLineNo">737</span>              return;<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>          } catch (IOException e) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            // The service itself failed . It may be an error coming from the communication<a name="line.741"></a>
-<span class="sourceLineNo">742</span>            //   layer, but, as well, a functional error raised by the server.<a name="line.742"></a>
-<span class="sourceLineNo">743</span>            receiveGlobalFailure(multiAction, server, numAttempt, e);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>            return;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          } catch (Throwable t) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>            // This should not happen. Let's log &amp; retry anyway.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>            LOG.error("#" + id + ", Caught throwable while calling. This is unexpected." +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>                " Retrying. Server is " + server + ", tableName=" + tableName, t);<a name="line.748"></a>
-<span class="sourceLineNo">749</span>            receiveGlobalFailure(multiAction, server, numAttempt, t);<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            return;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>          }<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>          // Normal case: we received an answer from the server, and it's not an exception.<a name="line.753"></a>
-<span class="sourceLineNo">754</span>          receiveMultiAction(multiAction, server, res, numAttempt);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>        } catch (Throwable t) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // Something really bad happened. We are on the send thread that will now die.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          LOG.error("Internal AsyncProcess #" + id + " error for "<a name="line.757"></a>
-<span class="sourceLineNo">758</span>              + tableName + " processing for " + server, t);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          throw new RuntimeException(t);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        } finally {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          decTaskCounters(multiAction.getRegions(), server);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>          if (callsInProgress != null &amp;&amp; callable != null) {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>            callsInProgress.remove(callable);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          }<a name="line.764"></a>
-<span class="sourceLineNo">765</span>        }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    private final Batch.Callback&lt;CResult&gt; callback;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    private final BatchErrors errors;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    private final ConnectionImplementation.ServerErrorTracker errorsByServer;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    private final ExecutorService pool;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.773"></a>
-<span class="sourceLineNo">774</span><a name="line.774"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</s

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.html
index 2591d73..7ec9317 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.html
@@ -95,7 +95,7 @@
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.73">TestAsyncProcess</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.74">TestAsyncProcess</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -377,108 +377,112 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testErrorsServers()">testErrorsServers</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testCallQueueTooLarge()">testCallQueueTooLarge</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testFail()">testFail</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testErrorsServers()">testErrorsServers</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testFailAndSuccess()">testFailAndSuccess</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testFail()">testFail</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testFlush()">testFlush</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testFailAndSuccess()">testFailAndSuccess</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testGlobalErrors()">testGlobalErrors</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testFlush()">testFlush</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testHTableFailedPutAndNewPut()">testHTableFailedPutAndNewPut</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testGlobalErrors()">testGlobalErrors</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testHTableFailedPutWithBuffer()">testHTableFailedPutWithBuffer</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testHTableFailedPutAndNewPut()">testHTableFailedPutAndNewPut</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testHTableFailedPutWithoutBuffer()">testHTableFailedPutWithoutBuffer</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testHTableFailedPutWithBuffer()">testHTableFailedPutWithBuffer</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testHTablePutSuccess()">testHTablePutSuccess</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testHTableFailedPutWithoutBuffer()">testHTableFailedPutWithoutBuffer</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testMaxTask()">testMaxTask</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testHTablePutSuccess()">testHTablePutSuccess</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaAllCallsFailForOneRegion()">testReplicaAllCallsFailForOneRegion</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testMaxTask()">testMaxTask</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaMainFailsBeforeReplicaCalls()">testReplicaMainFailsBeforeReplicaCalls</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaAllCallsFailForOneRegion()">testReplicaAllCallsFailForOneRegion</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaParallelCallsSucceed()">testReplicaParallelCallsSucceed</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaMainFailsBeforeReplicaCalls()">testReplicaMainFailsBeforeReplicaCalls</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaPartialReplicaCall()">testReplicaPartialReplicaCall</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaParallelCallsSucceed()">testReplicaParallelCallsSucceed</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaPrimarySuccessWoReplicaCalls()">testReplicaPrimarySuccessWoReplicaCalls</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaPartialReplicaCall()">testReplicaPartialReplicaCall</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaReplicaSuccess()">testReplicaReplicaSuccess</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaPrimarySuccessWoReplicaCalls()">testReplicaPrimarySuccessWoReplicaCalls</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaReplicaSuccessWithParallelFailures()">testReplicaReplicaSuccessWithParallelFailures</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaReplicaSuccess()">testReplicaReplicaSuccess</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testSubmit()">testSubmit</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testReplicaReplicaSuccessWithParallelFailures()">testReplicaReplicaSuccessWithParallelFailures</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testSubmitBusyRegion()">testSubmitBusyRegion</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testSubmit()">testSubmit</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testSubmitBusyRegionServer()">testSubmitBusyRegionServer</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testSubmitBusyRegion()">testSubmitBusyRegion</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testSubmitTrue()">testSubmitTrue</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testSubmitBusyRegionServer()">testSubmitBusyRegionServer</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testSubmitWithCB()">testSubmitWithCB</a></strong>()</code>&nbsp;</td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testSubmitTrue()">testSubmitTrue</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testSubmitWithCB()">testSubmitWithCB</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testThreadCreation()">testThreadCreation</a></strong>()</code>
 <div class="block">This test simulates multiple regions on 2 servers.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#testUncheckedException()">testUncheckedException</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#verifyReplicaResult(org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture,%20org.apache.hadoop.hbase.client.TestAsyncProcess.RR...)">verifyReplicaResult</a></strong>(org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture&nbsp;ars,
                                       <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a>...&nbsp;expecteds)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#verifyResult(org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture,%20boolean...)">verifyResult</a></strong>(org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture&nbsp;ars,
                         boolean...&nbsp;expected)</code>&nbsp;</td>
@@ -511,7 +515,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>timeout</h4>
-<pre>public final&nbsp;org.junit.rules.TestRule <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.74">timeout</a></pre>
+<pre>public final&nbsp;org.junit.rules.TestRule <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.75">timeout</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -520,7 +524,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.76">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.77">LOG</a></pre>
 </li>
 </ul>
 <a name="DUMMY_TABLE">
@@ -529,7 +533,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>DUMMY_TABLE</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.77">DUMMY_TABLE</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.78">DUMMY_TABLE</a></pre>
 </li>
 </ul>
 <a name="DUMMY_BYTES_1">
@@ -538,7 +542,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>DUMMY_BYTES_1</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.79">DUMMY_BYTES_1</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.80">DUMMY_BYTES_1</a></pre>
 </li>
 </ul>
 <a name="DUMMY_BYTES_2">
@@ -547,7 +551,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>DUMMY_BYTES_2</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.80">DUMMY_BYTES_2</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.81">DUMMY_BYTES_2</a></pre>
 </li>
 </ul>
 <a name="DUMMY_BYTES_3">
@@ -556,7 +560,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>DUMMY_BYTES_3</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.81">DUMMY_BYTES_3</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.82">DUMMY_BYTES_3</a></pre>
 </li>
 </ul>
 <a name="FAILS">
@@ -565,7 +569,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>FAILS</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.82">FAILS</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.83">FAILS</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -574,7 +578,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>private static final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.83">conf</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.84">conf</a></pre>
 </li>
 </ul>
 <a name="sn">
@@ -583,7 +587,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sn</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.ServerName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.85">sn</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.ServerName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.86">sn</a></pre>
 </li>
 </ul>
 <a name="sn2">
@@ -592,7 +596,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sn2</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.ServerName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.86">sn2</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.ServerName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.87">sn2</a></pre>
 </li>
 </ul>
 <a name="sn3">
@@ -601,7 +605,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sn3</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.ServerName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.87">sn3</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.ServerName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.88">sn3</a></pre>
 </li>
 </ul>
 <a name="hri1">
@@ -610,7 +614,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hri1</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.88">hri1</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.89">hri1</a></pre>
 </li>
 </ul>
 <a name="hri2">
@@ -619,7 +623,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hri2</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.90">hri2</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.91">hri2</a></pre>
 </li>
 </ul>
 <a name="hri3">
@@ -628,7 +632,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hri3</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.92">hri3</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.93">hri3</a></pre>
 </li>
 </ul>
 <a name="loc1">
@@ -637,7 +641,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>loc1</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionLocation <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.94">loc1</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionLocation <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.95">loc1</a></pre>
 </li>
 </ul>
 <a name="loc2">
@@ -646,7 +650,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>loc2</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionLocation <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.95">loc2</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionLocation <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.96">loc2</a></pre>
 </li>
 </ul>
 <a name="loc3">
@@ -655,7 +659,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>loc3</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionLocation <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.96">loc3</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionLocation <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.97">loc3</a></pre>
 </li>
 </ul>
 <a name="hri1r1">
@@ -664,7 +668,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hri1r1</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.99">hri1r1</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.100">hri1r1</a></pre>
 </li>
 </ul>
 <a name="hri1r2">
@@ -673,7 +677,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hri1r2</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.100">hri1r2</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.101">hri1r2</a></pre>
 </li>
 </ul>
 <a name="hri2r1">
@@ -682,7 +686,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hri2r1</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.101">hri2r1</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.HRegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.102">hri2r1</a></pre>
 </li>
 </ul>
 <a name="hrls1">
@@ -691,7 +695,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hrls1</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.RegionLocations <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.102">hrls1</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.RegionLocations <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.103">hrls1</a></pre>
 </li>
 </ul>
 <a name="hrls2">
@@ -700,7 +704,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hrls2</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.RegionLocations <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.104">hrls2</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.RegionLocations <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.105">hrls2</a></pre>
 </li>
 </ul>
 <a name="hrls3">
@@ -709,7 +713,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hrls3</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.RegionLocations <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.106">hrls3</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.RegionLocations <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.107">hrls3</a></pre>
 </li>
 </ul>
 <a name="success">
@@ -718,7 +722,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>success</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.108">success</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.109">success</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.TestAsyncProcess.success">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -728,7 +732,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>failure</h4>
-<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.109">failure</a></pre>
+<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.110">failure</a></pre>
 </li>
 </ul>
 <a name="NB_RETRIES">
@@ -737,7 +741,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>NB_RETRIES</h4>
-<pre>private static&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.111">NB_RETRIES</a></pre>
+<pre>private static&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.112">NB_RETRIES</a></pre>
 </li>
 </ul>
 </li>
@@ -754,7 +758,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.73">TestAsyncProcess</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.74">TestAsyncProcess</a>()</pre>
 </li>
 </ul>
 </li>
@@ -771,7 +775,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>beforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.114">beforeClass</a>()</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.115">beforeClass</a>()</pre>
 </li>
 </ul>
 <a name="createMultiResponse(org.apache.hadoop.hbase.client.MultiAction, java.util.concurrent.atomic.AtomicInteger, java.util.concurrent.atomic.AtomicInteger, org.apache.hadoop.hbase.client.TestAsyncProcess.ResponseGenerator)">
@@ -780,7 +784,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createMultiResponse</h4>
-<pre>static&nbsp;org.apache.hadoop.hbase.client.MultiResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.328">createMultiResponse</a>(org.apache.hadoop.hbase.client.MultiAction&lt;org.apache.hadoop.hbase.client.Row&gt;&nbsp;multi,
+<pre>static&nbsp;org.apache.hadoop.hbase.client.MultiResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.336">createMultiResponse</a>(org.apache.hadoop.hbase.client.MultiAction&lt;org.apache.hadoop.hbase.client.Row&gt;&nbsp;multi,
                                                                <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&nbsp;nbMultiResponse,
                                                                <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&nbsp;nbActions,
                                                                <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.ResponseGenerator.html" title="interface in org.apache.hadoop.hbase.client">TestAsyncProcess.ResponseGenerator</a>&nbsp;gen)</pre>
@@ -792,7 +796,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSubmit</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.417">testSubmit</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.425">testSubmit</a>()
                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -804,7 +808,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSubmitWithCB</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.429">testSubmitWithCB</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.437">testSubmitWithCB</a>()
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -816,7 +820,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSubmitBusyRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.450">testSubmitBusyRegion</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.458">testSubmitBusyRegion</a>()
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -828,7 +832,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSubmitBusyRegionServer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.468">testSubmitBusyRegionServer</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.476">testSubmitBusyRegionServer</a>()
                                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -840,7 +844,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testFail</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.489">testFail</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.497">testFail</a>()
               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -852,7 +856,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSubmitTrue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.515">testSubmitTrue</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.523">testSubmitTrue</a>()
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -864,7 +868,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testFailAndSuccess</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.554">testFailAndSuccess</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.562">testFailAndSuccess</a>()
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -876,7 +880,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.581">testFlush</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.589">testFlush</a>()
                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -888,7 +892,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testMaxTask</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.598">testMaxTask</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.606">testMaxTask</a>()
                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -900,7 +904,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createHConnection</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.647">createHConnection</a>()
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.655">createHConnection</a>()
                                                                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -912,7 +916,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createHConnectionWithReplicas</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.656">createHConnectionWithReplicas</a>()
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.664">createHConnectionWithReplicas</a>()
                                                                                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -924,7 +928,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setMockLocation</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.664">setMockLocation</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.672">setMockLocation</a>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;hc,
                    byte[]&nbsp;row,
                    org.apache.hadoop.hbase.RegionLocations&nbsp;result)
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -938,7 +942,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createHConnectionCommon</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.670">createHConnectionCommon</a>()</pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.678">createHConnectionCommon</a>()</pre>
 </li>
 </ul>
 <a name="testHTablePutSuccess()">
@@ -947,7 +951,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testHTablePutSuccess</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.680">testHTablePutSuccess</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.688">testHTablePutSuccess</a>()
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -959,7 +963,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doHTableFailedPut</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.691">doHTableFailedPut</a>(boolean&nbsp;bufferOn)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.699">doHTableFailedPut</a>(boolean&nbsp;bufferOn)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -971,7 +975,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testHTableFailedPutWithBuffer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.729">testHTableFailedPutWithBuffer</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.737">testHTableFailedPutWithBuffer</a>()
                                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -983,7 +987,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testHTableFailedPutWithoutBuffer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.734">testHTableFailedPutWithoutBuffer</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.742">testHTableFailedPutWithoutBuffer</a>()
                                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -995,7 +999,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testHTableFailedPutAndNewPut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.739">testHTableFailedPutAndNewPut</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.747">testHTableFailedPutAndNewPut</a>()
                                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -1007,7 +1011,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.767">testBatch</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.775">testBatch</a>()
                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1021,7 +1025,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testErrorsServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.798">testErrorsServers</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.806">testErrorsServers</a>()
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -1033,19 +1037,31 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testGlobalErrors</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.825">testGlobalErrors</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.833">testGlobalErrors</a>()
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
 </li>
 </ul>
+<a name="testCallQueueTooLarge()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testCallQueueTooLarge</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.855">testCallQueueTooLarge</a>()
+                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
+</li>
+</ul>
 <a name="testThreadCreation()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>testThreadCreation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.850">testThreadCreation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.879">testThreadCreation</a>()
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">This test simulates multiple regions on 2 servers. We should have 2 multi requests and
   2 threads: 1 per server, this whatever the number of regions.</div>
@@ -1059,7 +1075,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaReplicaSuccess</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.883">testReplicaReplicaSuccess</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.912">testReplicaReplicaSuccess</a>()
                                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -1071,7 +1087,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaPrimarySuccessWoReplicaCalls</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.894">testReplicaPrimarySuccessWoReplicaCalls</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.923">testReplicaPrimarySuccessWoReplicaCalls</a>()
                                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -1083,7 +1099,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaParallelCallsSucceed</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.904">testReplicaParallelCallsSucceed</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.933">testReplicaParallelCallsSucceed</a>()
                                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -1095,7 +1111,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaPartialReplicaCall</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.916">testReplicaPartialReplicaCall</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.945">testReplicaPartialReplicaCall</a>()
                                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -1107,7 +1123,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaMainFailsBeforeReplicaCalls</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.929">testReplicaMainFailsBeforeReplicaCalls</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.958">testReplicaMainFailsBeforeReplicaCalls</a>()
                                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -1119,7 +1135,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaReplicaSuccessWithParallelFailures</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.942">testReplicaReplicaSuccessWithParallelFailures</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.971">testReplicaReplicaSuccessWithParallelFailures</a>()
                                                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -1131,7 +1147,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaAllCallsFailForOneRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.954">testReplicaAllCallsFailForOneRegion</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.983">testReplicaAllCallsFailForOneRegion</a>()
                                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -1143,7 +1159,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createReplicaAp</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcessWithReplicas</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.969">createReplicaAp</a>(int&nbsp;replicaAfterMs,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcessWithReplicas</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.998">createReplicaAp</a>(int&nbsp;replicaAfterMs,
                                                           int&nbsp;primaryMs,
                                                           int&nbsp;replicaMs)
                                                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -1157,7 +1173,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createReplicaAp</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcessWithReplicas</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.974">createReplicaAp</a>(int&nbsp;replicaAfterMs,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcessWithReplicas</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1003">createReplicaAp</a>(int&nbsp;replicaAfterMs,
                                                           int&nbsp;primaryMs,
                                                           int&nbsp;replicaMs,
                                                           int&nbsp;retries)
@@ -1172,7 +1188,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>makeTimelineGets</h4>
-<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.client.Get&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.989">makeTimelineGets</a>(byte[]...&nbsp;rows)</pre>
+<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.client.Get&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1018">makeTimelineGets</a>(byte[]...&nbsp;rows)</pre>
 </li>
 </ul>
 <a name="verifyResult(org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture, boolean...)">
@@ -1181,7 +1197,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyResult</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.999">verifyResult</a>(org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture&nbsp;ars,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1028">verifyResult</a>(org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture&nbsp;ars,
                 boolean...&nbsp;expected)
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1194,7 +1210,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyReplicaResult</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1015">verifyReplicaResult</a>(org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture&nbsp;ars,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1044">verifyReplicaResult</a>(org.apache.hadoop.hbase.client.AsyncProcess.AsyncRequestFuture&nbsp;ars,
                        <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a>...&nbsp;expecteds)
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -1207,7 +1223,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createPut</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.client.Put&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1033">createPut</a>(int&nbsp;regCnt,
+<pre>private&nbsp;org.apache.hadoop.hbase.client.Put&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1062">createPut</a>(int&nbsp;regCnt,
                                            boolean&nbsp;success)</pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>regCnt</code> - the region: 1 to 3.</dd><dd><code>success</code> - if true, the put will succeed.</dd>
 <dt><span class="strong">Returns:</span></dt><dd>a put</dd></dl>
@@ -1219,7 +1235,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testUncheckedException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1077">testUncheckedException</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1106">testUncheckedException</a>()
                             throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html
index ee363fc..16f504e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.StubMaker.html
@@ -43,2273 +43,2227 @@
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.MultiActionResultTooLarge;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.RegionTooBusyException;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.RetryImmediatelyException;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.ServerName;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.TableName;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.security.User;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.zookeeper.KeeperException;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>import javax.annotation.Nullable;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>import java.io.Closeable;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import java.io.IOException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import java.io.InterruptedIOException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import java.net.InetAddress;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import java.net.InetSocketAddress;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import java.util.ArrayList;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import java.util.Date;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import java.util.List;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import java.util.concurrent.BlockingQueue;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import java.util.concurrent.ConcurrentMap;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import java.util.concurrent.ExecutorService;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import java.util.concurrent.TimeUnit;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>/**<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.111"></a>
-<span class="sourceLineNo">112</span>@InterfaceAudience.Private<a name="line.112"></a>
-<span class="sourceLineNo">113</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  private final boolean hostnamesCanChange;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  private final long pause;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private final boolean useMetaReplicas;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private final int numTries;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  final int rpcTimeout;<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>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.131"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ServerName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.TableName;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.security.User;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.zookeeper.KeeperException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>import javax.annotation.Nullable;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>import java.io.Closeable;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import java.io.IOException;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import java.io.InterruptedIOException;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import java.net.InetAddress;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import java.net.InetSocketAddress;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import java.util.ArrayList;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import java.util.Date;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import java.util.List;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import java.util.concurrent.BlockingQueue;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import java.util.concurrent.ConcurrentMap;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import java.util.concurrent.ExecutorService;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import java.util.concurrent.TimeUnit;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>/**<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.103"></a>
+<span class="sourceLineNo">104</span> */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.107"></a>
+<span class="sourceLineNo">108</span>@InterfaceAudience.Private<a name="line.108"></a>
+<span class="sourceLineNo">109</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private final boolean hostnamesCanChange;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  private final long pause;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  private final boolean useMetaReplicas;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private final int numTries;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  final int rpcTimeout;<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private final AsyncProcess asyncProcess;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  // single tracker per connection<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  private final ServerStatisticTracker stats;<a name="line.131"></a>
 <span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private final AsyncProcess asyncProcess;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  // single tracker per connection<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  private final ServerStatisticTracker stats;<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  private volatile boolean closed;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private volatile boolean aborted;<a name="line.138"></a>
+<span class="sourceLineNo">133</span>  private volatile boolean closed;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private volatile boolean aborted;<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // package protected for the tests<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  ClusterStatusListener clusterStatusListener;<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
 <span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>  // package protected for the tests<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  ClusterStatusListener clusterStatusListener;<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private final Object metaRegionLock = new Object();<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private final Object masterAndZKLock = new Object();<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  // thread executor shared by all HTableInterface instances created<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  // by this connection<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private volatile ExecutorService batchPool = null;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  // by this connection<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private volatile boolean cleanupPool = false;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private final Configuration conf;<a name="line.161"></a>
+<span class="sourceLineNo">140</span>  private final Object metaRegionLock = new Object();<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final Object masterAndZKLock = new Object();<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  // thread executor shared by all HTableInterface instances created<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  // by this connection<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private volatile ExecutorService batchPool = null;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  // by this connection<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private volatile boolean cleanupPool = false;<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private final Configuration conf;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  private final TableConfiguration tableConfig;<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final TableConfiguration tableConfig;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  // Client rpc instance.<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private RpcClient rpcClient;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  private final MetaCache metaCache;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private final MetricsConnection metrics;<a name="line.171"></a>
+<span class="sourceLineNo">163</span>  // Client rpc instance.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private RpcClient rpcClient;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final MetaCache metaCache;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  private final MetricsConnection metrics;<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  protected User user;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.171"></a>
 <span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  protected User user;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.173"></a>
 <span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>  private final RetryingCallerInterceptor interceptor;<a name="line.175"></a>
 <span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private final RetryingCallerInterceptor interceptor;<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>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   Registry registry;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private final ClientBackoffPolicy backoffPolicy;<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>   * constructor<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * @param conf Configuration object<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  ConnectionImplementation(Configuration conf,<a name="line.192"></a>
-<span class="sourceLineNo">193</span>                           ExecutorService pool, User user) throws IOException {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    this.conf = conf;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.user = user;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    this.batchPool = pool;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    this.closed = false;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // how many times to try, one more than max *retry* time<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    this.rpcTimeout = conf.getInt(<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        if (nonceGenerator == null) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    } else {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      nonceGenerator = new NoNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      this.metrics = new MetricsConnection(this);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    } else {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      this.metrics = null;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>            ClusterStatusListener.Listener.class);<a name="line.237"></a>
+<span class="sourceLineNo">177</span>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   Registry registry;<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>  private final ClientBackoffPolicy backoffPolicy;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * constructor<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @param conf Configuration object<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  ConnectionImplementation(Configuration conf,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                           ExecutorService pool, User user) throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    this.conf = conf;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    this.user = user;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.batchPool = pool;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    this.closed = false;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // how many times to try, one more than max *retry* time<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.rpcTimeout = conf.getInt(<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (nonceGenerator == null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    } else {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      nonceGenerator = new NoNonceGenerator();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      this.metrics = new MetricsConnection(this);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      this.metrics = null;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.232"></a>
+<span class="sourceLineNo">233</span>            ClusterStatusListener.Listener.class);<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>    try {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      this.registry = setupRegistry();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      retrieveClusterId();<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.registry = setupRegistry();<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      retrieveClusterId();<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>      // Do we publish the status?<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      if (shouldListen) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        if (listenerClass == null) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.248"></a>
-<span class="sourceLineNo">249</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        } else {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.251"></a>
-<span class="sourceLineNo">252</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>                @Override<a name="line.253"></a>
-<span class="sourceLineNo">254</span>                public void newDead(ServerName sn) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>                  clearCaches(sn);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>                  rpcClient.cancelConnections(sn);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>              }, conf, listenerClass);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    } catch (Throwable e) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      // avoid leaks: registry, rpcClient, ...<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      LOG.debug("connection construction failed", e);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      close();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      throw e;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  /**<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param conn The connection for which to replace the generator.<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @return old nonce generator.<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  @VisibleForTesting<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      + cnm.getClass().getName());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    nonceGenerator = cnm;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    return ng;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * Look for an exception we know in the remote exception:<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * - hadoop.ipc wrapped exceptions<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * - nested exceptions<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   *<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   *            ThrottlingException<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @return null if we didn't find the exception, the exception otherwise.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public static Throwable findException(Object exception) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (exception == null || !(exception instanceof Throwable)) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      return null;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Throwable cur = (Throwable) exception;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    while (cur != null) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      if (cur instanceof RegionMovedException || cur instanceof RegionOpeningException<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          || cur instanceof RegionTooBusyException || cur instanceof ThrottlingException<a name="line.301"></a>
-<span class="sourceLineNo">302</span>          || cur instanceof RetryImmediatelyException) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return cur;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      }<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      if (cur instanceof RemoteException) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        RemoteException re = (RemoteException) cur;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        cur = re.unwrapRemoteException(<a name="line.307"></a>
-<span class="sourceLineNo">308</span>            RegionOpeningException.class, RegionMovedException.class,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>            RegionTooBusyException.class);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        if (cur == null) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          cur = re.unwrapRemoteException();<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        // unwrapRemoteException can return the exception given as a parameter when it cannot<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        //  unwrap it. In this case, there is no need to look further<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        // noinspection ObjectEquality<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        if (cur == re) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          return null;<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      } else {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        cur = cur.getCause();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">239</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // Do we publish the status?<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (shouldListen) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        if (listenerClass == null) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.244"></a>
+<span class="sourceLineNo">245</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.247"></a>
+<span class="sourceLineNo">248</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                @Override<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                public void newDead(ServerName sn) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                  clearCaches(sn);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                  rpcClient.cancelConnections(sn);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>              }, conf, listenerClass);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      }<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (Throwable e) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      // avoid leaks: registry, rpcClient, ...<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      LOG.debug("connection construction failed", e);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      close();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      throw e;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * @param conn The connection for which to replace the generator.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * @return old nonce generator.<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  @VisibleForTesting<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      + cnm.getClass().getName());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    nonceGenerator = cnm;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return ng;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    return getTable(TableName.valueOf(tableName));<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    return getTable(TableName.valueOf(tableName));<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>  @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    return getTable(tableName, getBatchPool());<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>  @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    if (params.getTableName() == null) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (params.getPool() == null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<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 null;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  @Override<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return getTable(TableName.valueOf(tableName));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  @Override<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    return getTable(TableName.valueOf(tableName));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return getTable(tableName, getBatchPool());<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    if (params.getTableName() == null) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (params.getPool() == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<a name="line.366"></a>
+<span class="sourceLineNo">323</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<a name="line.331"></a>
+<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>  @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    return new HRegionLocator(tableName, this);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  public Admin getAdmin() throws IOException {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    return new HBaseAdmin(this);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>  @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public MetricsConnection getConnectionMetrics() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return this.metrics;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  private ExecutorService getBatchPool() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (batchPool == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      synchronized (this) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        if (batchPool == null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.353"></a>
+<span class="sourceLineNo">354</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          this.cleanupPool = true;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    return this.batchPool;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    // shared HTable thread executor not yet initialized<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    if (maxThreads == 0) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.366"></a>
 <span class="sourceLineNo">367</span>    }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.369"></a>
+<span class="sourceLineNo">368</span>    if (coreThreads == 0) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<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>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return new HRegionLocator(tableName, this);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  public Admin getAdmin() throws IOException {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    return new HBaseAdmin(this);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>  @Override<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  public MetricsConnection getConnectionMetrics() {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    return this.metrics;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  private ExecutorService getBatchPool() {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    if (batchPool == null) {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      synchronized (this) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        if (batchPool == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.398"></a>
-<span class="sourceLineNo">399</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          this.cleanupPool = true;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      }<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    }<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    return this.batchPool;<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>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    // shared HTable thread executor not yet initialized<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    if (maxThreads == 0) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (coreThreads == 0) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    }<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    if (workQueue == null) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      workQueue =<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.420"></a>
-<span class="sourceLineNo">421</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.421"></a>
-<span class="sourceLineNo">422</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        coreThreads,<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        maxThreads,<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        keepAliveTime,<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        TimeUnit.SECONDS,<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        workQueue,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    if (this.metaLookupPool == null) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      synchronized (this) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (this.metaLookupPool == null) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          //Some of the threads would be used for meta replicas<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          //the queue is full, a new thread will be started<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          this.metaLookupPool = getThreadPool(<a name="line.443"></a>
-<span class="sourceLineNo">444</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.444"></a>
-<span class="sourceLineNo">445</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.445"></a>
-<span class="sourceLineNo">446</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return this.metaLookupPool;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    return batchPool;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
+<span class="sourceLineNo">371</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    if (workQueue == null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      workQueue =<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        coreThreads,<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        maxThreads,<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        keepAliveTime,<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        TimeUnit.SECONDS,<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        workQueue,<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    if (this.metaLookupPool == null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      synchronized (this) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (this.metaLookupPool == null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          //Some of the threads would be used for meta replicas<a name="line.394"></a>
+<span class="sourceLineNo">395</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.395"></a>
+<span class="sourceLineNo">396</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.396"></a>
+<span class="sourceLineNo">397</span>          //the queue is full, a new thread will be started<a name="line.397"></a>
+<span class="sourceLineNo">398</span>          this.metaLookupPool = getThreadPool(<a name="line.398"></a>
+<span class="sourceLineNo">399</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.399"></a>
+<span class="sourceLineNo">400</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.400"></a>
+<span class="sourceLineNo">401</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      }<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return this.metaLookupPool;<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>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    return batchPool;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>  private void shutdownPools() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      shutdownBatchPool(this.batchPool);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    pool.shutdown();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        pool.shutdownNow();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    } catch (InterruptedException e) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      pool.shutdownNow();<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>  /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * @return The cluster registry implementation to use.<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private Registry setupRegistry() throws IOException {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    return RegistryFactory.getRegistry(this);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span>  /**<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   * For tests only.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  @VisibleForTesting<a name="line.446"></a>
+<span class="sourceLineNo">447</span>  RpcClient getRpcClient() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    return rpcClient;<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>   * An identifier that will remain the same for a given connection.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>   */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>  public String toString(){<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    return "hconnection-0x" + Integer.toHexString(hashCode());<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>  protected String clusterId = null;<a name="line.459"></a>
 <span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private void shutdownPools() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      shutdownBatchPool(this.batchPool);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.466"></a>
+<span class="sourceLineNo">461</span>  protected void retrieveClusterId() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    if (clusterId != null) return;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    this.clusterId = this.registry.getClusterId();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    if (clusterId == null) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      clusterId = HConstants.CLUSTER_ID_DEFAULT;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      LOG.debug("clusterid came back null, using default " + clusterId);<a name="line.466"></a>
 <span class="sourceLineNo">467</span>    }<a name="line.467"></a>
 <span class="sourceLineNo">468</span>  }<a name="line.468"></a>
 <span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    pool.shutdown();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        pool.shutdownNow();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    } catch (InterruptedException e) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      pool.shutdownNow();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  /**<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @return The cluster registry implementation to use.<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   */<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  private Registry setupRegistry() throws IOException {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    return RegistryFactory.getRegistry(this);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>  /**<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * For tests only.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   */<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  @VisibleForTesting<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  RpcClient getRpcClient() {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return rpcClient;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * An identifier that will remain the same for a given connection.<a name="line.497"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public Configuration getConfiguration() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return this.conf;<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>  private void checkIfBaseNodeAvailable(ZooKeeperWatcher zkw)<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    throws MasterNotRunningException {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    String errorMsg;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    try {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (ZKUtil.checkExists(zkw, zkw.baseZNode) == -1) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        errorMsg = "The node " + zkw.baseZNode+" is not in ZooKeeper. "<a name="line.480"></a>
+<span class="sourceLineNo">481</span>          + "It should have been written by the master. "<a name="lin

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/ConnectionUtils.MasterlessConnection.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionUtils.MasterlessConnection.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionUtils.MasterlessConnection.html
index b584f3a..6ee723a 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionUtils.MasterlessConnection.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionUtils.MasterlessConnection.html
@@ -196,7 +196,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#abort(java.lang.String,%20java.lang.Throwable)">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearCaches(org.apache.hadoop.hbase.ServerName)">clearCaches</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache()">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(byte[])">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(org.apache.hadoop.hbase.TableName)">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(org.apache.hadoop.hbase.TableName,%20byte[])">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#close()">close</a>, <
 a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#createAsyncProcess(org.apache.hadoop.conf.Configuration)">createAsyncProcess</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#deleteCachedRegionLocation(org.apache.hadoop.hbase.HRegionLocation)">deleteCachedRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#finalize()">finalize</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#findException(java.lang.Object)">findException</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin()">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin(org.apache.hadoop.hbase.ServerName)">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin(org.apache.hadoop.hbase.ServerName,%20boolean)"
 >getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAsyncProcess()">getAsyncProcess</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBackoffPolicy()">getBackoffPolicy</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator(org.apache.hadoop.hbase.client.BufferedMutatorParams)">getBufferedMutator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator(org.apache.hadoop.hbase.TableName)">getBufferedMutator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCachedLocation(org.apache.hadoop.hbase.TableName,%20byte[])">getCachedLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getClient(org.apache.hadoop.hbase.ServerName)">getClient</a>, <a href="../../../../../org/apache/hadoop/hbase/client/Connectio
 nImplementation.html#getConfiguration()">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getConnectionMetrics()">getConnectionMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentBatchPool()">getCurrentBatchPool</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentMetaLookupPool()">getCurrentMetaLookupPool</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentNrHRS()">getCurrentNrHRS</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptor(byte[])">getHTableDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptor(org.apache.hadoop.hbase.TableName)">getHTableDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTabl
 eDescriptors(java.util.List)">getHTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptorsByTableName(java.util.List)">getHTableDescriptorsByTableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getKeepAliveMasterService()">getKeepAliveMasterService</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getKeepAliveZooKeeperWatcher()">getKeepAliveZooKeeperWatcher</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getMaster()">getMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration)">getNewRpcRetryingCallerFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNonceGenerator()">getNonceGenerator</a>, <a href="../../../../../org/apache/hadoop
 /hbase/client/ConnectionImplementation.html#getNumberOfCachedRegionLocations(org.apache.hadoop.hbase.TableName)">getNumberOfCachedRegionLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionCachePrefetch(byte[])">getRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionCachePrefetch(org.apache.hadoop.hbase.TableName)">getRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation(byte[],%20byte[],%20boolean)">getRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean)">getRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocator(org.apache.hadoop.hbase.TableName)">getRegionLocator</a>, <a href="../../../../../org/ap
 ache/hadoop/hbase/client/ConnectionImplementation.html#getRpcClient()">getRpcClient</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getStatisticsTracker()">getStatisticsTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getStubKey(java.lang.String,%20java.lang.String,%20int,%20boolean)">getStubKey</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(byte[])">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(byte[],%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(java.lang.String)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(java.lang.String,%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/h
 adoop/hbase/client/ConnectionImplementation.html#getTable(org.apache.hadoop.hbase.TableName)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableNames()">getTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableState(org.apache.hadoop.hbase.TableName)">getTableState</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#injectNonceGeneratorForTesting(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.hbase.client.NonceGenerator)">injectNonceGeneratorForTesting</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isAborted()">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/client/Connection
 Implementation.html#isClosed()">isClosed</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isDeadServer(org.apache.hadoop.hbase.ServerName)">isDeadServer</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isMasterRunning()">isMasterRunning</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(byte[])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(byte[],%20byte[][])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(org.apache.hadoop.hbase.TableName)">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(org.apache.hadoop.hbase.TableName,%20byte[][])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/Connecti
 onImplementation.html#isTableDisabled(byte[])">isTableDisabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableEnabled(byte[])">isTableEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableEnabled(org.apache.hadoop.hbase.TableName)">isTableEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#listTableNames()">listTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#listTables()">listTables</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(byte[],%20byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">lo
 cateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean)">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(byte[])">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(byte[],%20boolean,%20boolean)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(org.apache.hadoop.hbase.TableName)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(org.apache.hadoop.hbase.TableName,%20boolean,%20boolean)">locateRegions</a>, 
 <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatch(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatchCallback(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatchCallback(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callba
 ck)">processBatchCallback</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#releaseMaster(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">releaseMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#releaseZooKeeperWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">releaseZooKeeperWatcher</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(byte[],%20byte[])">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20int)">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#retrieveClusterId
 ()">retrieveClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#setRegionCachePrefetch(byte[],%20boolean)">setRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#setRegionCachePrefetch(org.apache.hadoop.hbase.TableName,%20boolean)">setRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#toString()">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocation(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName,%20long)">updateCachedLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/cl
 ient/ConnectionImplementation.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.ServerName)">updateCachedLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#abort(java.lang.String,%20java.lang.Throwable)">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearCaches(org.apache.hadoop.hbase.ServerName)">clearCaches</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache()">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(byte[])">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(org.apache.hadoop.hbase.TableName)">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(org.apache.hadoop.hbase.TableName,%20byte[])">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#close()">close</a>, <
 a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#createAsyncProcess(org.apache.hadoop.conf.Configuration)">createAsyncProcess</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#deleteCachedRegionLocation(org.apache.hadoop.hbase.HRegionLocation)">deleteCachedRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#finalize()">finalize</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin()">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin(org.apache.hadoop.hbase.ServerName)">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin(org.apache.hadoop.hbase.ServerName,%20boolean)">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAsyncProcess()">getAsyncProcess</a
 >, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBackoffPolicy()">getBackoffPolicy</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator(org.apache.hadoop.hbase.client.BufferedMutatorParams)">getBufferedMutator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator(org.apache.hadoop.hbase.TableName)">getBufferedMutator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCachedLocation(org.apache.hadoop.hbase.TableName,%20byte[])">getCachedLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getClient(org.apache.hadoop.hbase.ServerName)">getClient</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getConfiguration()">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplement
 ation.html#getConnectionMetrics()">getConnectionMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentBatchPool()">getCurrentBatchPool</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentMetaLookupPool()">getCurrentMetaLookupPool</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentNrHRS()">getCurrentNrHRS</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptor(byte[])">getHTableDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptor(org.apache.hadoop.hbase.TableName)">getHTableDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptors(java.util.List)">getHTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.h
 tml#getHTableDescriptorsByTableName(java.util.List)">getHTableDescriptorsByTableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getKeepAliveMasterService()">getKeepAliveMasterService</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getKeepAliveZooKeeperWatcher()">getKeepAliveZooKeeperWatcher</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getMaster()">getMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration)">getNewRpcRetryingCallerFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNonceGenerator()">getNonceGenerator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNumberOfCachedRegionLocations(org.apache.hadoop.hbase.TableName)">getNumberOfCachedRegionL
 ocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionCachePrefetch(byte[])">getRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionCachePrefetch(org.apache.hadoop.hbase.TableName)">getRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation(byte[],%20byte[],%20boolean)">getRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean)">getRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocator(org.apache.hadoop.hbase.TableName)">getRegionLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRpcClient()">getRpcClient</a>, <a href="../../../../../org/apache/hadoop/hbase/
 client/ConnectionImplementation.html#getStatisticsTracker()">getStatisticsTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getStubKey(java.lang.String,%20java.lang.String,%20int,%20boolean)">getStubKey</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(byte[])">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(byte[],%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(java.lang.String)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(java.lang.String,%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(org.apache.hadoop.hbase.TableName)">getTable</a>, <a href="../../../../../org/a
 pache/hadoop/hbase/client/ConnectionImplementation.html#getTable(org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableNames()">getTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableState(org.apache.hadoop.hbase.TableName)">getTableState</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#injectNonceGeneratorForTesting(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.hbase.client.NonceGenerator)">injectNonceGeneratorForTesting</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isAborted()">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isClosed()">isClosed</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isDead
 Server(org.apache.hadoop.hbase.ServerName)">isDeadServer</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isMasterRunning()">isMasterRunning</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(byte[])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(byte[],%20byte[][])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(org.apache.hadoop.hbase.TableName)">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(org.apache.hadoop.hbase.TableName,%20byte[][])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableDisabled(byte[])">isTableDisabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpl
 ementation.html#isTableEnabled(byte[])">isTableEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableEnabled(org.apache.hadoop.hbase.TableName)">isTableEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#listTableNames()">listTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#listTables()">listTables</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(byte[],%20byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase
 .TableName,%20byte[],%20boolean,%20boolean)">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(byte[])">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(byte[],%20boolean,%20boolean)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(org.apache.hadoop.hbase.TableName)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(org.apache.hadoop.hbase.TableName,%20boolean,%20boolean)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatch(java.util.List,%20byte[],%20java.util.c
 oncurrent.ExecutorService,%20java.lang.Object[])">processBatch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatchCallback(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatchCallback(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#releaseMaster(org.apa
 che.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">releaseMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#releaseZooKeeperWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">releaseZooKeeperWatcher</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(byte[],%20byte[])">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20int)">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#retrieveClusterId()">retrieveClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#setRegionCachePrefetch(by
 te[],%20boolean)">setRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#setRegionCachePrefetch(org.apache.hadoop.hbase.TableName,%20boolean)">setRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#toString()">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocation(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName,%20long)">updateCachedLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20java.lang.Object,%20org
 .apache.hadoop.hbase.ServerName)">updateCachedLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</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/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/CoprocessorHConnection.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/CoprocessorHConnection.html b/devapidocs/org/apache/hadoop/hbase/client/CoprocessorHConnection.html
index bd1b623..9c2b377 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/CoprocessorHConnection.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/CoprocessorHConnection.html
@@ -237,7 +237,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#abort(java.lang.String,%20java.lang.Throwable)">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearCaches(org.apache.hadoop.hbase.ServerName)">clearCaches</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache()">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(byte[])">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(org.apache.hadoop.hbase.TableName)">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(org.apache.hadoop.hbase.TableName,%20byte[])">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#close()">close</a>, <
 a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#createAsyncProcess(org.apache.hadoop.conf.Configuration)">createAsyncProcess</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#deleteCachedRegionLocation(org.apache.hadoop.hbase.HRegionLocation)">deleteCachedRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#finalize()">finalize</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#findException(java.lang.Object)">findException</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin()">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin(org.apache.hadoop.hbase.ServerName)">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin(org.apache.hadoop.hbase.ServerName,%20boolean)"
 >getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAsyncProcess()">getAsyncProcess</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBackoffPolicy()">getBackoffPolicy</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator(org.apache.hadoop.hbase.client.BufferedMutatorParams)">getBufferedMutator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator(org.apache.hadoop.hbase.TableName)">getBufferedMutator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCachedLocation(org.apache.hadoop.hbase.TableName,%20byte[])">getCachedLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getConfiguration()">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html
 #getConnectionMetrics()">getConnectionMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentBatchPool()">getCurrentBatchPool</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentMetaLookupPool()">getCurrentMetaLookupPool</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentNrHRS()">getCurrentNrHRS</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptor(byte[])">getHTableDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptor(org.apache.hadoop.hbase.TableName)">getHTableDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptors(java.util.List)">getHTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTa
 bleDescriptorsByTableName(java.util.List)">getHTableDescriptorsByTableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getKeepAliveMasterService()">getKeepAliveMasterService</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getKeepAliveZooKeeperWatcher()">getKeepAliveZooKeeperWatcher</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getMaster()">getMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration)">getNewRpcRetryingCallerFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNumberOfCachedRegionLocations(org.apache.hadoop.hbase.TableName)">getNumberOfCachedRegionLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionCachePrefetch(byte[])">getRegio
 nCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionCachePrefetch(org.apache.hadoop.hbase.TableName)">getRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation(byte[],%20byte[],%20boolean)">getRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean)">getRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocator(org.apache.hadoop.hbase.TableName)">getRegionLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRpcClient()">getRpcClient</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getStatisticsTracker()">getStatisticsTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/clie
 nt/ConnectionImplementation.html#getStubKey(java.lang.String,%20java.lang.String,%20int,%20boolean)">getStubKey</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(byte[])">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(byte[],%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(java.lang.String)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(java.lang.String,%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(org.apache.hadoop.hbase.TableName)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService)
 ">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableNames()">getTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableState(org.apache.hadoop.hbase.TableName)">getTableState</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#injectNonceGeneratorForTesting(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.hbase.client.NonceGenerator)">injectNonceGeneratorForTesting</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isAborted()">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isClosed()">isClosed</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isDeadServer(org.apache.hadoop.hbase.ServerName)">isDeadServer</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementati
 on.html#isMasterRunning()">isMasterRunning</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(byte[])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(byte[],%20byte[][])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(org.apache.hadoop.hbase.TableName)">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(org.apache.hadoop.hbase.TableName,%20byte[][])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableDisabled(byte[])">isTableDisabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableDisabled(org.apache.hadoop.hbase.TableName)">isTableDisabled</a>, <a href="../../../../../org/apache/hadoop/hbase/cl
 ient/ConnectionImplementation.html#isTableEnabled(byte[])">isTableEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableEnabled(org.apache.hadoop.hbase.TableName)">isTableEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#listTableNames()">listTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#listTables()">listTables</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(byte[],%20byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.
 apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean)">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(byte[])">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(byte[],%20boolean,%20boolean)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(org.apache.hadoop.hbase.TableName)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(org.apache.hadoop.hbase.TableName,%20boolean,%20boolean)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatch(java.util.List,%20by
 te[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatchCallback(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatchCallback(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#re
 leaseMaster(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">releaseMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#releaseZooKeeperWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">releaseZooKeeperWatcher</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(byte[],%20byte[])">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20int)">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#retrieveClusterId()">retrieveClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#setReg
 ionCachePrefetch(byte[],%20boolean)">setRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#setRegionCachePrefetch(org.apache.hadoop.hbase.TableName,%20boolean)">setRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#toString()">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocation(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName,%20long)">updateCachedLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20java
 .lang.Object,%20org.apache.hadoop.hbase.ServerName)">updateCachedLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#abort(java.lang.String,%20java.lang.Throwable)">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearCaches(org.apache.hadoop.hbase.ServerName)">clearCaches</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache()">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(byte[])">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(org.apache.hadoop.hbase.TableName)">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#clearRegionCache(org.apache.hadoop.hbase.TableName,%20byte[])">clearRegionCache</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#close()">close</a>, <
 a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#createAsyncProcess(org.apache.hadoop.conf.Configuration)">createAsyncProcess</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#deleteCachedRegionLocation(org.apache.hadoop.hbase.HRegionLocation)">deleteCachedRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#finalize()">finalize</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin()">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin(org.apache.hadoop.hbase.ServerName)">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin(org.apache.hadoop.hbase.ServerName,%20boolean)">getAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAsyncProcess()">getAsyncProcess</a
 >, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBackoffPolicy()">getBackoffPolicy</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator(org.apache.hadoop.hbase.client.BufferedMutatorParams)">getBufferedMutator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator(org.apache.hadoop.hbase.TableName)">getBufferedMutator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCachedLocation(org.apache.hadoop.hbase.TableName,%20byte[])">getCachedLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getConfiguration()">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getConnectionMetrics()">getConnectionMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#g
 etCurrentBatchPool()">getCurrentBatchPool</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentMetaLookupPool()">getCurrentMetaLookupPool</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentNrHRS()">getCurrentNrHRS</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptor(byte[])">getHTableDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptor(org.apache.hadoop.hbase.TableName)">getHTableDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptors(java.util.List)">getHTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptorsByTableName(java.util.List)">getHTableDescriptorsByTableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/Co
 nnectionImplementation.html#getKeepAliveMasterService()">getKeepAliveMasterService</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getKeepAliveZooKeeperWatcher()">getKeepAliveZooKeeperWatcher</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getMaster()">getMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration)">getNewRpcRetryingCallerFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNumberOfCachedRegionLocations(org.apache.hadoop.hbase.TableName)">getNumberOfCachedRegionLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionCachePrefetch(byte[])">getRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionCachePrefetch(org.apach
 e.hadoop.hbase.TableName)">getRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation(byte[],%20byte[],%20boolean)">getRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean)">getRegionLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocator(org.apache.hadoop.hbase.TableName)">getRegionLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRpcClient()">getRpcClient</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getStatisticsTracker()">getStatisticsTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getStubKey(java.lang.String,%20java.lang.String,%20int,%20boolean)">getStubKey</a>, <a href="../../../..
 /../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(byte[])">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(byte[],%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(java.lang.String)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(java.lang.String,%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(org.apache.hadoop.hbase.TableName)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService)">getTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableNames()">getTableNames</a>, 
 <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableState(org.apache.hadoop.hbase.TableName)">getTableState</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#injectNonceGeneratorForTesting(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.hbase.client.NonceGenerator)">injectNonceGeneratorForTesting</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isAborted()">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isClosed()">isClosed</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isDeadServer(org.apache.hadoop.hbase.ServerName)">isDeadServer</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isMasterRunning()">isMasterRunning</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTa
 bleAvailable(byte[])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(byte[],%20byte[][])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(org.apache.hadoop.hbase.TableName)">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(org.apache.hadoop.hbase.TableName,%20byte[][])">isTableAvailable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableDisabled(byte[])">isTableDisabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableDisabled(org.apache.hadoop.hbase.TableName)">isTableDisabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableEnabled(byte[])">isTableEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/Con
 nectionImplementation.html#isTableEnabled(org.apache.hadoop.hbase.TableName)">isTableEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#listTableNames()">listTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#listTables()">listTables</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(byte[],%20byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean)">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/
 ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(byte[])">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(byte[],%20boolean,%20boolean)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(org.apache.hadoop.hbase.TableName)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(org.apache.hadoop.hbase.TableName,%20boolean,%20boolean)">locateRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatch(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a>, <a href="../../../../../org/apache/hadoop/hbase/cl
 ient/ConnectionImplementation.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatchCallback(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatchCallback(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#releaseMaster(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">releaseMaster</a>, <a href="../../../../../org/a
 pache/hadoop/hbase/client/ConnectionImplementation.html#releaseZooKeeperWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">releaseZooKeeperWatcher</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(byte[],%20byte[])">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20int)">relocateRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#retrieveClusterId()">retrieveClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#setRegionCachePrefetch(byte[],%20boolean)">setRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 ntation.html#setRegionCachePrefetch(org.apache.hadoop.hbase.TableName,%20boolean)">setRegionCachePrefetch</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#toString()">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocation(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName,%20long)">updateCachedLocation</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.ServerName)">updateCachedLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/client/Co
 nnectionImplementation.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</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/39cf5e9b/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 428aab7..52fe8c2 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -389,11 +389,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">TableState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Admin.CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">Admin.CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">TableState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">Durability</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">AsyncProcess.Retry</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">IsolationLevel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="strong">Consistency</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html b/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
new file mode 100644
index 0000000..9406553
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ClientExceptionsUtil (Apache HBase 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ClientExceptionsUtil (Apache HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/ClientExceptionsUtil.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>Prev Class</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/ConnectionClosingException.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" target="_top">Frames</a></li>
+<li><a href="ClientExceptionsUtil.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.exceptions</div>
+<h2 title="Class ClientExceptionsUtil" class="title">Class ClientExceptionsUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/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.exceptions.ClientExceptionsUtil</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
+<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Evolving.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceStability.Evolving</a>
+public final class <a href="../../../../../src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#line.33">ClientExceptionsUtil</a>
+extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" 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><strong><a href="../../../../../org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#ClientExceptionsUtil()">ClientExceptionsUtil</a></strong>()</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</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>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#findException(java.lang.Object)">findException</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;exception)</code>
+<div class="block">Look for an exception we know in the remote exception:
+ - hadoop.ipc wrapped exceptions
+ - nested exceptions
+
+ Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /
+            ThrottlingException</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#isMetaClearingException(java.lang.Throwable)">isMetaClearingException</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cur)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#isSpecialException(java.lang.Throwable)">isSpecialException</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cur)</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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ClientExceptionsUtil()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ClientExceptionsUtil</h4>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#line.35">ClientExceptionsUtil</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="isMetaClearingException(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isMetaClearingException</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#line.37">isMetaClearingException</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cur)</pre>
+</li>
+</ul>
+<a name="isSpecialException(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSpecialException</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#line.46">isSpecialException</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cur)</pre>
+</li>
+</ul>
+<a name="findException(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>findException</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#line.63">findException</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;exception)</pre>
+<div class="block">Look for an exception we know in the remote exception:
+ - hadoop.ipc wrapped exceptions
+ - nested exceptions
+
+ Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /
+            ThrottlingException</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>null if we didn't find the exception, the exception otherwise.</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/ClientExceptionsUtil.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>Prev Class</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/ConnectionClosingException.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" target="_top">Frames</a></li>
+<li><a href="ClientExceptionsUtil.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2016 <a href="http://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/39cf5e9b/devapidocs/org/apache/hadoop/hbase/exceptions/ConnectionClosingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/exceptions/ConnectionClosingException.html b/devapidocs/org/apache/hadoop/hbase/exceptions/ConnectionClosingException.html
index b8487ef..c353d95 100644
--- a/devapidocs/org/apache/hadoop/hbase/exceptions/ConnectionClosingException.html
+++ b/devapidocs/org/apache/hadoop/hbase/exceptions/ConnectionClosingException.html
@@ -35,7 +35,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li>Prev Class</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">Prev Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/exceptions/DeserializationException.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -253,7 +253,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.ht
 </div>
 <div class="subNav">
 <ul class="navList">
-<li>Prev Class</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">Prev Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/exceptions/DeserializationException.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/exceptions/class-use/ClientExceptionsUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/exceptions/class-use/ClientExceptionsUtil.html b/devapidocs/org/apache/hadoop/hbase/exceptions/class-use/ClientExceptionsUtil.html
new file mode 100644
index 0000000..f3bc0e4
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/exceptions/class-use/ClientExceptionsUtil.html
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil (Apache HBase 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil (Apache HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">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/exceptions/class-use/ClientExceptionsUtil.html" target="_top">Frames</a></li>
+<li><a href="ClientExceptionsUtil.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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.exceptions.ClientExceptionsUtil" class="title">Uses of Class<br>org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">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/exceptions/class-use/ClientExceptionsUtil.html" target="_top">Frames</a></li>
+<li><a href="ClientExceptionsUtil.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/devapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html b/devapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html
index 811a818..0e3dfb2 100644
--- a/devapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html
@@ -9,6 +9,10 @@
 <body>
 <h1 class="bar"><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html" target="classFrame">org.apache.hadoop.hbase.exceptions</a></h1>
 <div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions" target="classFrame">ClientExceptionsUtil</a></li>
+</ul>
 <h2 title="Exceptions">Exceptions</h2>
 <ul title="Exceptions">
 <li><a href="ConnectionClosingException.html" title="class in org.apache.hadoop.hbase.exceptions" target="classFrame">ConnectionClosingException</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html b/devapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html
index 35efa48..2f325a3 100644
--- a/devapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html
@@ -67,6 +67,21 @@
 <div class="contentContainer">
 <ul class="blockList">
 <li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">ClientExceptionsUtil</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
 <table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
 <caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html b/devapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html
index 90e293f..bc9654c 100644
--- a/devapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html
@@ -73,6 +73,7 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="strong">Object</span></a>
 <ul>
+<li type="circle">org.apache.hadoop.hbase.exceptions.<a href="../../../../../org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">ClientExceptionsUtil</span></a></li>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="strong">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="strong">Exception</span></a>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.html
index 4d2974d..e3c5f93 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.html
@@ -104,7 +104,7 @@
 <hr>
 <br>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
- class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.113">ConnectionImplementation</a>
+ class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.109">ConnectionImplementation</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
 <div class="block">Main implementation of <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client"><code>Connection</code></a> and <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client"><code>ClusterConnection</code></a> interfaces.
@@ -462,95 +462,84 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#findException(java.lang.Object)">findException</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;exception)</code>
-<div class="block">Look for an exception we know in the remote exception:
- - hadoop.ipc wrapped exceptions
- - nested exceptions
-
- Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /
-            ThrottlingException</div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin()">getAdmin</a></strong>()</code>
 <div class="block">Retrieve an Admin implementation to administer an HBase cluster.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin(org.apache.hadoop.hbase.ServerName)">getAdmin</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block">Establishes a connection to the region server at the specified address.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin(org.apache.hadoop.hbase.ServerName,%20boolean)">getAdmin</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                 boolean&nbsp;master)</code>
 <div class="block">Establishes a connection to the region server at the specified address.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAsyncProcess()">getAsyncProcess</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html" title="interface in org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicy</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBackoffPolicy()">getBackoffPolicy</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBatchPool()">getBatchPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html" title="interface in org.apache.hadoop.hbase.client">BufferedMutator</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator(org.apache.hadoop.hbase.client.BufferedMutatorParams)">getBufferedMutator</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutatorParams.html" title="class in org.apache.hadoop.hbase.client">BufferedMutatorParams</a>&nbsp;params)</code>
 <div class="block">Retrieve a <a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html" title="interface in org.apache.hadoop.hbase.client"><code>BufferedMutator</code></a> for performing client-side buffering of writes.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html" title="interface in org.apache.hadoop.hbase.client">BufferedMutator</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator(org.apache.hadoop.hbase.TableName)">getBufferedMutator</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">
  Retrieve a <a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html" title="interface in org.apache.hadoop.hbase.client"><code>BufferedMutator</code></a> for performing client-side buffering of writes.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCachedLocation(org.apache.hadoop.hbase.TableName,%20byte[])">getCachedLocation</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                   byte[]&nbsp;row)</code>
 <div class="block">Search the cache for a location that fits our table and row key.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ClientService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getClient(org.apache.hadoop.hbase.ServerName)">getClient</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
 <div class="block">Establishes a connection to the region server at the specified address, and returns
  a region client protocol.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getConfiguration()">getConfiguration</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getConnectionMetrics()">getConnectionMetrics</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentBatchPool()">getCurrentBatchPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentMetaLookupPool()">getCurrentMetaLookupPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCurrentNrHRS()">getCurrentNrHRS</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptor(byte[])">getHTableDescriptor</a></strong>(byte[]&nbsp;tableName)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -559,7 +548,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptor(org.apache.hadoop.hbase.TableName)">getHTableDescriptor</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -568,7 +557,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptors(java.util.List)">getHTableDescriptors</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;names)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -578,7 +567,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getHTableDescriptorsByTableName(java.util.List)">getHTableDescriptorsByTableName</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNames)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -586,44 +575,44 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/MasterKeepAliveConnection.html" title="interface in org.apache.hadoop.hbase.client">MasterKeepAliveConnection</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getKeepAliveMasterService()">getKeepAliveMasterService</a></strong>()</code>
 <div class="block">This function allows HBaseAdmin and potentially others to get a shared MasterService
  connection.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/client/ZooKeeperKeepAliveConnection.html" title="class in org.apache.hadoop.hbase.client">ZooKeeperKeepAliveConnection</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getKeepAliveZooKeeperWatcher()">getKeepAliveZooKeeperWatcher</a></strong>()</code>
 <div class="block">Retrieve a shared ZooKeeperWatcher.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getMaster()">getMaster</a></strong>()</code>
 <div class="block">Returns a <a href="../../../../../org/apache/hadoop/hbase/client/MasterKeepAliveConnection.html" title="interface in org.apache.hadoop.hbase.client"><code>MasterKeepAliveConnection</code></a> to the active master</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getMetaLookupPool()">getMetaLookupPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerFactory</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration)">getNewRpcRetryingCallerFactory</a></strong>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
 <div class="block">Returns a new RpcRetryingCallerFactory from the given <code>Configuration</code>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNonceGenerator()">getNonceGenerator</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNumberOfCachedRegionLocations(org.apache.hadoop.hbase.TableName)">getNumberOfCachedRegionLocations</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionCachePrefetch(byte[])">getRegionCachePrefetch</a></strong>(byte[]&nbsp;tableName)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -631,7 +620,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionCachePrefetch(org.apache.hadoop.hbase.TableName)">getRegionCachePrefetch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -639,13 +628,13 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation(byte[],%20byte[],%20boolean)">getRegionLocation</a></strong>(byte[]&nbsp;tableName,
                                   byte[]&nbsp;row,
                                   boolean&nbsp;reload)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean)">getRegionLocation</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                   byte[]&nbsp;row,
@@ -653,69 +642,69 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <div class="block">Find region location hosting passed row</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocator(org.apache.hadoop.hbase.TableName)">getRegionLocator</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Retrieve a RegionLocator implementation to inspect region information on a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRpcClient()">getRpcClient</a></strong>()</code>
 <div class="block">For tests only.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html" title="class in org.apache.hadoop.hbase.client">ServerStatisticTracker</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getStatisticsTracker()">getStatisticsTracker</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getStubKey(java.lang.String,%20java.lang.String,%20int,%20boolean)">getStubKey</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName,
                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rsHostname,
                     int&nbsp;port,
                     boolean&nbsp;resolveHostnames)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/HTableInterface.html" title="interface in org.apache.hadoop.hbase.client">HTableInterface</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(byte[])">getTable</a></strong>(byte[]&nbsp;tableName)</code>
 <div class="block">Retrieve an HTableInterface implementation for access to a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/HTableInterface.html" title="interface in org.apache.hadoop.hbase.client">HTableInterface</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(byte[],%20java.util.concurrent.ExecutorService)">getTable</a></strong>(byte[]&nbsp;tableName,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>
 <div class="block">Retrieve an HTableInterface implementation for access to a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/HTableInterface.html" title="interface in org.apache.hadoop.hbase.client">HTableInterface</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(java.lang.String)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableName)</code>
 <div class="block">Retrieve an HTableInterface implementation for access to a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/HTableInterface.html" title="interface in org.apache.hadoop.hbase.client">HTableInterface</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(java.lang.String,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableName,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>
 <div class="block">Retrieve an HTableInterface implementation for access to a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/HTableInterface.html" title="interface in org.apache.hadoop.hbase.client">HTableInterface</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(org.apache.hadoop.hbase.TableName)">getTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Retrieve an HTableInterface implementation for access to a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/HTableInterface.html" title="interface in org.apache.hadoop.hbase.client">HTableInterface</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable(org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>
 <div class="block">Retrieve an HTableInterface implementation for access to a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableNames()">getTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -723,45 +712,45 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/TableState.html" title="class in org.apache.hadoop.hbase.client">TableState</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableState(org.apache.hadoop.hbase.TableName)">getTableState</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Retrieve TableState, represent current table state.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getThreadPool(int,%20int,%20java.lang.String,%20java.util.concurrent.BlockingQueue)">getThreadPool</a></strong>(int&nbsp;maxThreads,
                           int&nbsp;coreThreads,
                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;nameHint,
                           <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&gt;&nbsp;passedWorkQueue)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#injectNonceGeneratorForTesting(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.hbase.client.NonceGenerator)">injectNonceGeneratorForTesting</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;conn,
                                                             <a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a>&nbsp;cnm)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isAborted()">isAborted</a></strong>()</code>
 <div class="block">Check if the server or client was aborted.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isClosed()">isClosed</a></strong>()</code>
 <div class="block">Returns whether the connection is closed or not.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isDeadServer(org.apache.hadoop.hbase.ServerName)">isDeadServer</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isKeepAliveMasterConnectedAndRunning(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">isKeepAliveMasterConnectedAndRunning</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.MasterServiceState</a>&nbsp;mss)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isMasterRunning()">isMasterRunning</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -769,20 +758,20 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(byte[])">isTableAvailable</a></strong>(byte[]&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(byte[],%20byte[][])">isTableAvailable</a></strong>(byte[]&nbsp;tableName,
                                 byte[][]&nbsp;splitKeys)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(org.apache.hadoop.hbase.TableName)">isTableAvailable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableAvailable(org.apache.hadoop.hbase.TableName,%20byte[][])">isTableAvailable</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                 byte[][]&nbsp;splitKeys)</code>
@@ -790,26 +779,26 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
  splitkeys which was used while creating the given table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableDisabled(byte[])">isTableDisabled</a></strong>(byte[]&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableDisabled(org.apache.hadoop.hbase.TableName)">isTableDisabled</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableEnabled(byte[])">isTableEnabled</a></strong>(byte[]&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#isTableEnabled(org.apache.hadoop.hbase.TableName)">isTableEnabled</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">A table that isTableEnabled == false and isTableDisabled == false
  is possible.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#listTableNames()">listTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -817,7 +806,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#listTables()">listTables</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;
@@ -825,24 +814,24 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateMeta(org.apache.hadoop.hbase.TableName,%20boolean,%20int)">locateMeta</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                     boolean&nbsp;useCache,
                     int&nbsp;replicaId)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(byte[])">locateRegion</a></strong>(byte[]&nbsp;regionName)</code>
 <div class="block">Gets the location of the region of <i>regionName</i>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(byte[],%20byte[])">locateRegion</a></strong>(byte[]&nbsp;tableName,
                         byte[]&nbsp;row)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">locateRegion</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         byte[]&nbsp;row)</code>
@@ -850,14 +839,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
  lives in.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean)">locateRegion</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         byte[]&nbsp;row,
                         boolean&nbsp;useCache,
                         boolean&nbsp;retry)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegion</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         byte[]&nbsp;row,
@@ -865,7 +854,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
                         boolean&nbsp;retry,
                         int&nbsp;replicaId)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegionInMeta(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegionInMeta</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                     byte[]&nbsp;row,
@@ -873,23 +862,23 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
                                     boolean&nbsp;retry,
                                     int&nbsp;replicaId)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(byte[])">locateRegions</a></strong>(byte[]&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(byte[],%20boolean,%20boolean)">locateRegions</a></strong>(byte[]&nbsp;tableName,
                           boolean&nbsp;useCache,
                           boolean&nbsp;offlined)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(org.apache.hadoop.hbase.TableName)">locateRegions</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Gets the locations of all regions in the specified table, <i>tableName</i>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions(org.apache.hadoop.hbase.TableName,%20boolean,%20boolean)">locateRegions</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                           boolean&nbsp;useCache,
@@ -897,7 +886,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <div class="block">Gets the locations of all regions in the specified table, <i>tableName</i>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatch(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;list,
                         byte[]&nbsp;tableName,
@@ -908,7 +897,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;list,
                         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -919,7 +908,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatchCallback(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;list,
                                         byte[]&nbsp;tableName,
@@ -931,7 +920,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#processBatchCallback(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;list,
                                         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -944,24 +933,24 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#release(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">release</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.MasterServiceState</a>&nbsp;mss)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#releaseMaster(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">releaseMaster</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.MasterServiceState</a>&nbsp;mss)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#releaseZooKeeperWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">releaseZooKeeperWatcher</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;zkw)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(byte[],%20byte[])">relocateRegion</a></strong>(byte[]&nbsp;tableName,
                             byte[]&nbsp;row)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">relocateRegion</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                             byte[]&nbsp;row)</code>
@@ -969,7 +958,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
  lives in, ignoring any value that might be in the cache.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20int)">relocateRegion</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                             byte[]&nbsp;row,
@@ -978,15 +967,15 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
  lives in, ignoring any value that might be in the cache.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#resetMasterServiceState(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">resetMasterServiceState</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.MasterServiceState</a>&nbsp;mss)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#retrieveClusterId()">retrieveClusterId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#setRegionCachePrefetch(byte[],%20boolean)">setRegionCachePrefetch</a></strong>(byte[]&nbsp;tableName,
                                             boolean&nbsp;enable)</code>
@@ -995,7 +984,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#setRegionCachePrefetch(org.apache.hadoop.hbase.TableName,%20boolean)">setRegionCachePrefetch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                             boolean&nbsp;enable)</code>
@@ -1004,39 +993,39 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/client/Registry.html" title="interface in org.apache.hadoop.hbase.client">Registry</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#setupRegistry()">setupRegistry</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#shutdownBatchPool(java.util.concurrent.ExecutorService)">shutdownBatchPool</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#shutdownPools()">shutdownPools</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#toString()">toString</a></strong>()</code>
 <div class="block">An identifier that will remain the same for a given connection.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocation(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName,%20long)">updateCachedLocation</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
                                         <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;source,
                                         <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                                         long&nbsp;seqNum)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(byte[]&nbsp;tableName,
                                           byte[]&nbsp;rowkey,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;exception,
                                           <a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&nbsp;source)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.ServerName)">updateCachedLocations</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                           byte[]&nbsp;regionName,
@@ -1047,7 +1036,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
  or delete it from the cache.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                           byte[]&nbsp;rowkey,
@@ -1082,7 +1071,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>RETRIES_BY_SERVER_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.114">RETRIES_BY_SERVER_KEY</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.110">RETRIES_BY_SERVER_KEY</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.ConnectionImplementation.RETRIES_BY_SERVER_KEY">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -1092,7 +1081,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <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/client/ConnectionImplementation.html#line.115">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.111">LOG</a></pre>
 </li>
 </ul>
 <a name="CLIENT_NONCES_ENABLED_KEY">
@@ -1101,7 +1090,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>CLIENT_NONCES_ENABLED_KEY</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.116">CLIENT_NONCES_ENABLED_KEY</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.112">CLIENT_NONCES_ENABLED_KEY</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.ConnectionImplementation.CLIENT_NONCES_ENABLED_KEY">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -1111,7 +1100,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>RESOLVE_HOSTNAME_ON_FAIL_KEY</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.117">RESOLVE_HOSTNAME_ON_FAIL_KEY</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.113">RESOLVE_HOSTNAME_ON_FAIL_KEY</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.ConnectionImplementation.RESOLVE_HOSTNAME_ON_FAIL_KEY">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -1121,7 +1110,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>hostnamesCanChange</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.119">hostnamesCanChange</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.115">hostnamesCanChange</a></pre>
 </li>
 </ul>
 <a name="pause">
@@ -1130,7 +1119,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>pause</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.120">pause</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.116">pause</a></pre>
 </li>
 </ul>
 <a name="useMetaReplicas">
@@ -1139,7 +1128,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>useMetaReplicas</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.121">useMetaReplicas</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.117">useMetaReplicas</a></pre>
 </li>
 </ul>
 <a name="numTries">
@@ -1148,7 +1137,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>numTries</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.122">numTries</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.118">numTries</a></pre>
 </li>
 </ul>
 <a name="rpcTimeout">
@@ -1157,7 +1146,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcTimeout</h4>
-<pre>final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.123">rpcTimeout</a></pre>
+<pre>final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.119">rpcTimeout</a></pre>
 </li>
 </ul>
 <a name="nonceGenerator">
@@ -1166,7 +1155,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>nonceGenerator</h4>
-<pre>private static volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.129">nonceGenerator</a></pre>
+<pre>private static volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.125">nonceGenerator</a></pre>
 <div class="block">Global nonceGenerator shared per client.Currently there's no reason to limit its scope.
  Once it's set under nonceGeneratorCreateLock, it is never unset or changed.</div>
 </li>
@@ -1177,7 +1166,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>nonceGeneratorCreateLock</h4>
-<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.131">nonceGeneratorCreateLock</a></pre>
+<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.127">nonceGeneratorCreateLock</a></pre>
 <div class="block">The nonce generator lock. Only taken when creating HConnection, which gets a private copy.</div>
 </li>
 </ul>
@@ -1187,7 +1176,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>asyncProcess</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.133">asyncProcess</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.129">asyncProcess</a></pre>
 </li>
 </ul>
 <a name="stats">
@@ -1196,7 +1185,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>stats</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html" title="class in org.apache.hadoop.hbase.client">ServerStatisticTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.135">stats</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ServerStatisticTracker.html" title="class in org.apache.hadoop.hbase.client">ServerStatisticTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.131">stats</a></pre>
 </li>
 </ul>
 <a name="closed">
@@ -1205,7 +1194,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>closed</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.137">closed</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.133">closed</a></pre>
 </li>
 </ul>
 <a name="aborted">
@@ -1214,7 +1203,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>aborted</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.138">aborted</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.134">aborted</a></pre>
 </li>
 </ul>
 <a name="clusterStatusListener">
@@ -1223,7 +1212,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterStatusListener</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/ClusterStatusListener.html" title="class in org.apache.hadoop.hbase.client">ClusterStatusListener</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.141">clusterStatusListener</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/ClusterStatusListener.html" title="class in org.apache.hadoop.hbase.client">ClusterStatusListener</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.137">clusterStatusListener</a></pre>
 </li>
 </ul>
 <a name="metaRegionLock">
@@ -1232,7 +1221,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>metaRegionLock</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.144">metaRegionLock</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.140">metaRegionLock</a></pre>
 </li>
 </ul>
 <a name="masterAndZKLock">
@@ -1241,7 +1230,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>masterAndZKLock</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.151">masterAndZKLock</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.147">masterAndZKLock</a></pre>
 </li>
 </ul>
 <a name="batchPool">
@@ -1250,7 +1239,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>batchPool</h4>
-<pre>private volatile&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.155">batchPool</a></pre>
+<pre>private volatile&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.151">batchPool</a></pre>
 </li>
 </ul>
 <a name="metaLookupPool">
@@ -1259,7 +1248,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>metaLookupPool</h4>
-<pre>private volatile&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.158">metaLookupPool</a></pre>
+<pre>private volatile&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.154">metaLookupPool</a></pre>
 </li>
 </ul>
 <a name="cleanupPool">
@@ -1268,7 +1257,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupPool</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.159">cleanupPool</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.155">cleanupPool</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -1277,7 +1266,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>private final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.161">conf</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.157">conf</a></pre>
 </li>
 </ul>
 <a name="tableConfig">
@@ -1286,7 +1275,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>tableConfig</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TableConfiguration.html" title="class in org.apache.hadoop.hbase.client">TableConfiguration</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.165">tableConfig</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TableConfiguration.html" title="class in org.apache.hadoop.hbase.client">TableConfiguration</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.161">tableConfig</a></pre>
 </li>
 </ul>
 <a name="rpcClient">
@@ -1295,7 +1284,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcClient</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.168">rpcClient</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.164">rpcClient</a></pre>
 </li>
 </ul>
 <a name="metaCache">
@@ -1304,7 +1293,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>metaCache</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MetaCache.html" title="class in org.apache.hadoop.hbase.client">MetaCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.170">metaCache</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MetaCache.html" title="class in org.apache.hadoop.hbase.client">MetaCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.166">metaCache</a></pre>
 </li>
 </ul>
 <a name="metrics">
@@ -1313,7 +1302,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>metrics</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.171">metrics</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.167">metrics</a></pre>
 </li>
 </ul>
 <a name="user">
@@ -1322,7 +1311,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>user</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.173">user</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.169">user</a></pre>
 </li>
 </ul>
 <a name="rpcCallerFactory">
@@ -1331,7 +1320,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcCallerFactory</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.175">rpcCallerFactory</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.171">rpcCallerFactory</a></pre>
 </li>
 </ul>
 <a name="rpcControllerFactory">
@@ -1340,7 +1329,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcControllerFactory</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcControllerFactory.html" title="class in org.apache.hadoop.hbase.ipc">RpcControllerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.177">rpcControllerFactory</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcControllerFactory.html" title="class in org.apache.hadoop.hbase.ipc">RpcControllerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.173">rpcControllerFactory</a></pre>
 </li>
 </ul>
 <a name="interceptor">
@@ -1349,7 +1338,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>interceptor</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallerInterceptor.html" title="class in org.apache.hadoop.hbase.client">RetryingCallerInterceptor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.179">interceptor</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallerInterceptor.html" title="class in org.apache.hadoop.hbase.client">RetryingCallerInterceptor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.175">interceptor</a></pre>
 </li>
 </ul>
 <a name="registry">
@@ -1358,7 +1347,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>registry</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/Registry.html" title="interface in org.apache.hadoop.hbase.client">Registry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.184">registry</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/Registry.html" title="interface in org.apache.hadoop.hbase.client">Registry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.180">registry</a></pre>
 <div class="block">Cluster registry of basic info such as clusterid and meta region location.</div>
 </li>
 </ul>
@@ -1368,7 +1357,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>backoffPolicy</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html" title="interface in org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicy</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.186">backoffPolicy</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html" title="interface in org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicy</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.182">backoffPolicy</a></pre>
 </li>
 </ul>
 <a name="clusterId">
@@ -1377,7 +1366,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterId</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.504">clusterId</a></pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.459">clusterId</a></pre>
 </li>
 </ul>
 <a name="stubs">
@@ -1386,7 +1375,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>stubs</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1026">stubs</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.981">stubs</a></pre>
 </li>
 </ul>
 <a name="connectionLock">
@@ -1395,7 +1384,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>connectionLock</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1029">connectionLock</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.984">connectionLock</a></pre>
 </li>
 </ul>
 <a name="keepAliveZookeeper">
@@ -1404,7 +1393,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>keepAliveZookeeper</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ZooKeeperKeepAliveConnection.html" title="class in org.apache.hadoop.hbase.client">ZooKeeperKeepAliveConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1359">keepAliveZookeeper</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ZooKeeperKeepAliveConnection.html" title="class in org.apache.hadoop.hbase.client">ZooKeeperKeepAliveConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1314">keepAliveZookeeper</a></pre>
 </li>
 </ul>
 <a name="keepAliveZookeeperUserCount">
@@ -1413,7 +1402,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnect
 <ul class="blockList">
 <li class="blockList">
 <h4>keepAliveZookeeperUserCount</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.1360">keepAliveZookeeperU

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index cf2f43a..d3025a3 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -280,10 +280,10 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
 <tr class="b">
-<td>1665</td>
+<td>1667</td>
 <td>0</td>
 <td>0</td>
-<td>12894</td></tr></table></div>
+<td>12893</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -2441,7 +2441,7 @@
 <td><a href="#org.apache.hadoop.hbase.mapreduce.PutSortReducer.java">org/apache/hadoop/hbase/mapreduce/PutSortReducer.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
+<td>2</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.ResultSerialization.java">org/apache/hadoop/hbase/mapreduce/ResultSerialization.java</a></td>
 <td>0</td>
@@ -6104,7 +6104,7 @@
 <ul>
 <li>ordered: <tt>&quot;true&quot;</tt></li>
 <li>sortStaticImportsAlphabetically: <tt>&quot;true&quot;</tt></li></ul></td>
-<td>980</td>
+<td>979</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
@@ -12147,133 +12147,133 @@
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L61">61</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L62">62</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L427">427</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L428">428</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L587">587</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L588">588</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L629">629</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L630">630</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L664">664</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L665">665</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L667">667</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L668">668</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L677">677</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L678">678</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L699">699</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L700">700</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L732">732</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L733">733</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L891">891</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L892">892</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L927">927</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L928">928</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L943">943</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L944">944</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L947">947</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L948">948</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L969">969</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L970">970</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 15, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1018">1018</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1019">1019</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child have incorrect indentation level 15, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1018">1018</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1019">1019</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1096">1096</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1097">1097</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 9, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1433">1433</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1434">1434</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 9, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1434">1434</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1435">1435</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1527">1527</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1528">1528</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1636">1636</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1637">1637</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1718">1718</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/client/AsyncProcess.html#L1719">1719</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.BufferedMutator.java">org/apache/hadoop/hbase/client/BufferedMutator.java</h3>
 <table border="0" class="table table-striped">
@@ -13836,121 +13836,121 @@
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'javax.annotation.Nullable' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L85">85</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L81">81</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.Closeable' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L87">87</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L83">83</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'member def type' have incorrect indentation level 3, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L184">184</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L180">180</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L507">507</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L462">462</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L603">603</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L558">558</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L771">771</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L726">726</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L1232">1232</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L1187">1187</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 388 lines (max allowed is 150).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L1412">1412</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L1367">1367</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L1827">1827</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L1782">1782</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L1875">1875</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L1830">1830</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L1982">1982</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L1936">1936</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>NoFinalizer</td>
 <td>Avoid using finalizer method.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2150">2150</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2104">2104</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2214">2214</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2168">2168</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2230">2230</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2184">2184</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2252">2252</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2206">2206</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2255">2255</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2209">2209</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2261">2261</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2215">2215</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2282">2282</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2236">2236</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2293">2293</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2247">2247</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2295">2295</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/client/ConnectionImplementation.html#L2249">2249</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ConnectionUtils.java">org/apache/hadoop/hbase/client/ConnectionUtils.java</h3>
 <table border="0" class="table table-striped">
@@ -32808,529 +32808,529 @@
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L72">72</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L73">73</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.io.BoundedByteBufferPool' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L87">87</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L88">88</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L104">104</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L105">105</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.htrace.TraceInfo' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L129">129</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L130">130</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.util.concurrent.ThreadFactoryBuilder' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L131">131</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L132">132</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L392">392</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L393">393</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L393">393</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L394">394</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L459">459</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L460">460</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 35 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L706">706</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L707">707</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L709">709</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L710">710</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L716">716</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L717">717</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L718">718</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L719">719</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L740">740</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L741">741</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L744">744</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L745">745</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L783">783</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L784">784</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L839">839</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L840">840</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L946">946</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L947">947</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L953">953</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L954">954</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child have incorrect indentation level 9, expected level should be 10.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1068">1068</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1069">1069</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try' child have incorrect indentation level 9, expected level should be 10.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1068">1068</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1069">1069</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1086">1086</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1087">1087</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1117">1117</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1118">1118</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1118">1118</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1119">1119</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1119">1119</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1120">1120</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'attemptingUser' must be private and have accessor methods.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1243">1243</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1237">1237</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1270">1270</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1264">1264</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1339">1339</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1333">1333</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 12, expected level should be 14.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1354">1354</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1348">1348</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1355">1355</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1349">1349</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 16, expected level should be 18.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1356">1356</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1350">1350</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1358">1358</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1352">1352</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1359">1359</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1353">1353</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1363">1363</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1357">1357</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 12, expected level should be 14.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1364">1364</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1358">1358</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1365">1365</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1359">1359</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'member def type' have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1365">1365</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1359">1359</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1366">1366</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1360">1360</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'member def type' have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1366">1366</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1360">1360</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1367">1367</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1361">1361</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 16, expected level should be 18.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1368">1368</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1362">1362</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child have incorrect indentation level 16, expected level should be 18.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1368">1368</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1362">1362</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1369">1369</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1363">1363</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1370">1370</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1364">1364</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'member def modifier' have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1370">1370</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1364">1364</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1370">1370</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1364">1364</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1371">1371</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1365">1365</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 16, expected level should be 18.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1372">1372</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1366">1366</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1375">1375</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1369">1369</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1376">1376</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1370">1370</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child have incorrect indentation level 14, expected level should be 16.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1376">1376</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1370">1370</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1386">1386</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1380">1380</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1553">1553</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1547">1547</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1554">1554</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1548">1548</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 6, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1636">1636</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1630">1630</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 6, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1637">1637</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1631">1631</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1657">1657</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1651">1651</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1659">1659</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1653">1653</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1715">1715</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1709">1709</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1720">1720</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1714">1714</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1722">1722</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1716">1716</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1728">1728</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1722">1722</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1745">1745</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1739">1739</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1754">1754</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1748">1748</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1763">1763</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1757">1757</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1793">1793</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1787">1787</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1794">1794</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1788">1788</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1795">1795</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1789">1789</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1835">1835</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1829">1829</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1914">1914</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1919">1919</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 11 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1916">1916</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1921">1921</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 13 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1918">1918</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1923">1923</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 11 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1920">1920</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1925">1925</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1976">1976</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1981">1981</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1980">1980</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1985">1985</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1981">1981</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L1986">1986</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2073">2073</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2078">2078</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2077">2077</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2082">2082</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 46 should have line break after.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2098">2098</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2103">2103</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2108">2108</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2113">2113</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2130">2130</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2135">2135</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2131">2131</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2136">2136</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2204">2204</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2209">2209</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2209">2209</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2214">2214</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2210">2210</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2215">2215</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2303">2303</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2308">2308</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2366">2366</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2371">2371</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2382">2382</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2387">2387</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2387">2387</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/ipc/RpcServer.html#L2392">2392</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.ipc.RpcServerInterface.java">org/apache/hadoop/hbase/ipc/RpcServerInterface.java</h3>
 <table border="0" class="table table-striped">
@@ -35331,32 +35331,26 @@
 <th>Line</th></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>imports</td>
-<td>ImportOrder</td>
-<td>Wrong order for 'org.apache.hadoop.hbase.Cell' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html#L27">27</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 3 should be on the previous line.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html#L56">56</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html#L80">80</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html#L82">82</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.ResultSerialization.java">org/apache/hadoop/hbase/mapreduce/ResultSerialization.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -35365,25 +35359,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.RowCounter.java">org/apache/hadoop/hbase/mapreduce/RowCounter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.commons.lang.StringUtils' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L25">25</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L29">29</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -35392,13 +35386,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.SampleUploader.java">org/apache/hadoop/hbase/mapreduce/SampleUploader.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -35407,43 +35401,43 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.SimpleTotalOrderPartitioner.java">org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configurable' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html#L25">25</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html#L43">43</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'implements' have incorrect indentation level 0, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html#L50">50</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html#L53">53</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html#L55">55</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -35452,55 +35446,55 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.SyncTable.java">org/apache/hadoop/hbase/mapreduce/SyncTable.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.base.Throwables' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SyncTable.html#L53">53</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'enum def rcurly' have incorrect indentation level 81, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SyncTable.html#L169">169</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'member def type' have incorrect indentation level 8, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SyncTable.html#L202">202</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SyncTable.html#L202">202</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'member def type' have incorrect indentation level 8, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SyncTable.html#L203">203</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SyncTable.html#L203">203</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/SyncTable.html#L205">205</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -35509,25 +35503,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.TableInputFormat.java">org/apache/hadoop/hbase/mapreduce/TableInputFormat.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.util.Pair' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#L40">40</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'implements' have incorrect indentation level 0, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#L50">50</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -35536,97 +35530,97 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.java">org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.HConstants' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L37">37</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.client.HTable.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L42">42</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'extends' have incorrect indentation level 0, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L104">104</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 12, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L332">332</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 12, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L334">334</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L359">359</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'for' child have incorrect indentation level 10, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L480">480</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 116).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L536">536</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 127).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L538">538</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 135).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L539">539</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 150).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L544">544</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L591">591</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L610">610</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#L655">655</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
@@ -35635,331 +35629,331 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.java">org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.codahale.metrics.MetricRegistry' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L22">22</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.File' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L52">52</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L70">70</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L86">86</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L109">109</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L137">137</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 3, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L140">140</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 6, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L145">145</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L159">159</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 3, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L164">164</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 5, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L170">170</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 3, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L172">172</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L185">185</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L200">200</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L201">201</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L231">231</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 6, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L243">243</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L257">257</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 6, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L268">268</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L282">282</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 6, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L293">293</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L358">358</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L363">363</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L364">364</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L611">611</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L627">627</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L629">629</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L631">631</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L632">632</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L633">633</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L634">634</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L635">635</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L636">636</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L637">637</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L659">659</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L661">661</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L663">663</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L664">664</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L665">665</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L666">666</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L667">667</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L668">668</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L669">669</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L686">686</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L731">731</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L756">756</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L823">823</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L824">824</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L873">873</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L888">888</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L904">904</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L930">930</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#L944">944</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -35968,13 +35962,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.TableMapper.java">org/apache/hadoop/hbase/mapreduce/TableMapper.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -35983,13 +35977,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.TableOutputCommitter.java">org/apache/hadoop/hbase/mapreduce/TableOutputCommitter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
@@ -35998,31 +35992,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.TableOutputFormat.java">org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configurable' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html#L27">27</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'implements' have incorrect indentation level 0, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html#L52">52</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 127).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html#L73">73</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -36031,19 +36025,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.TableRecordReader.java">org/apache/hadoop/hbase/mapreduce/TableRecordReader.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'extends' have incorrect indentation level 0, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableRecordReader.html#L40">40</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -36052,73 +36046,73 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.java">org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#L28">28</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.DoNotRetryIOException' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#L35">35</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#L102">102</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#L143">143</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#L144">144</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#L174">174</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#L202">202</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#1

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html
index ee363fc..16f504e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html
@@ -43,2273 +43,2227 @@
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.MultiActionResultTooLarge;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.RegionTooBusyException;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.RetryImmediatelyException;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.ServerName;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.TableName;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.security.User;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.zookeeper.KeeperException;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>import javax.annotation.Nullable;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>import java.io.Closeable;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import java.io.IOException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import java.io.InterruptedIOException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import java.net.InetAddress;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import java.net.InetSocketAddress;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import java.util.ArrayList;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import java.util.Date;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import java.util.List;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import java.util.concurrent.BlockingQueue;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import java.util.concurrent.ConcurrentMap;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import java.util.concurrent.ExecutorService;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import java.util.concurrent.TimeUnit;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>/**<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.111"></a>
-<span class="sourceLineNo">112</span>@InterfaceAudience.Private<a name="line.112"></a>
-<span class="sourceLineNo">113</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  private final boolean hostnamesCanChange;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  private final long pause;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private final boolean useMetaReplicas;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private final int numTries;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  final int rpcTimeout;<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>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.131"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ServerName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.TableName;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.security.User;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.zookeeper.KeeperException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>import javax.annotation.Nullable;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>import java.io.Closeable;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import java.io.IOException;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import java.io.InterruptedIOException;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import java.net.InetAddress;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import java.net.InetSocketAddress;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import java.util.ArrayList;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import java.util.Date;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import java.util.List;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import java.util.concurrent.BlockingQueue;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import java.util.concurrent.ConcurrentMap;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import java.util.concurrent.ExecutorService;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import java.util.concurrent.TimeUnit;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>/**<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.103"></a>
+<span class="sourceLineNo">104</span> */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.107"></a>
+<span class="sourceLineNo">108</span>@InterfaceAudience.Private<a name="line.108"></a>
+<span class="sourceLineNo">109</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private final boolean hostnamesCanChange;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  private final long pause;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  private final boolean useMetaReplicas;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private final int numTries;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  final int rpcTimeout;<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private final AsyncProcess asyncProcess;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  // single tracker per connection<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  private final ServerStatisticTracker stats;<a name="line.131"></a>
 <span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private final AsyncProcess asyncProcess;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  // single tracker per connection<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  private final ServerStatisticTracker stats;<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  private volatile boolean closed;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private volatile boolean aborted;<a name="line.138"></a>
+<span class="sourceLineNo">133</span>  private volatile boolean closed;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private volatile boolean aborted;<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // package protected for the tests<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  ClusterStatusListener clusterStatusListener;<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
 <span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>  // package protected for the tests<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  ClusterStatusListener clusterStatusListener;<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private final Object metaRegionLock = new Object();<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private final Object masterAndZKLock = new Object();<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  // thread executor shared by all HTableInterface instances created<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  // by this connection<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private volatile ExecutorService batchPool = null;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  // by this connection<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private volatile boolean cleanupPool = false;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private final Configuration conf;<a name="line.161"></a>
+<span class="sourceLineNo">140</span>  private final Object metaRegionLock = new Object();<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final Object masterAndZKLock = new Object();<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  // thread executor shared by all HTableInterface instances created<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  // by this connection<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private volatile ExecutorService batchPool = null;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  // by this connection<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private volatile boolean cleanupPool = false;<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private final Configuration conf;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  private final TableConfiguration tableConfig;<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final TableConfiguration tableConfig;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  // Client rpc instance.<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private RpcClient rpcClient;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  private final MetaCache metaCache;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private final MetricsConnection metrics;<a name="line.171"></a>
+<span class="sourceLineNo">163</span>  // Client rpc instance.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private RpcClient rpcClient;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final MetaCache metaCache;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  private final MetricsConnection metrics;<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  protected User user;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.171"></a>
 <span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  protected User user;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.173"></a>
 <span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>  private final RetryingCallerInterceptor interceptor;<a name="line.175"></a>
 <span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private final RetryingCallerInterceptor interceptor;<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>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   Registry registry;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private final ClientBackoffPolicy backoffPolicy;<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>   * constructor<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * @param conf Configuration object<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  ConnectionImplementation(Configuration conf,<a name="line.192"></a>
-<span class="sourceLineNo">193</span>                           ExecutorService pool, User user) throws IOException {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    this.conf = conf;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.user = user;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    this.batchPool = pool;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    this.closed = false;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // how many times to try, one more than max *retry* time<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    this.rpcTimeout = conf.getInt(<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        if (nonceGenerator == null) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    } else {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      nonceGenerator = new NoNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      this.metrics = new MetricsConnection(this);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    } else {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      this.metrics = null;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>            ClusterStatusListener.Listener.class);<a name="line.237"></a>
+<span class="sourceLineNo">177</span>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   Registry registry;<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>  private final ClientBackoffPolicy backoffPolicy;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * constructor<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @param conf Configuration object<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  ConnectionImplementation(Configuration conf,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                           ExecutorService pool, User user) throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    this.conf = conf;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    this.user = user;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.batchPool = pool;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    this.closed = false;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // how many times to try, one more than max *retry* time<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.rpcTimeout = conf.getInt(<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (nonceGenerator == null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    } else {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      nonceGenerator = new NoNonceGenerator();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      this.metrics = new MetricsConnection(this);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      this.metrics = null;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.232"></a>
+<span class="sourceLineNo">233</span>            ClusterStatusListener.Listener.class);<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>    try {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      this.registry = setupRegistry();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      retrieveClusterId();<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.registry = setupRegistry();<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      retrieveClusterId();<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>      // Do we publish the status?<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      if (shouldListen) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        if (listenerClass == null) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.248"></a>
-<span class="sourceLineNo">249</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        } else {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.251"></a>
-<span class="sourceLineNo">252</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>                @Override<a name="line.253"></a>
-<span class="sourceLineNo">254</span>                public void newDead(ServerName sn) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>                  clearCaches(sn);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>                  rpcClient.cancelConnections(sn);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>              }, conf, listenerClass);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    } catch (Throwable e) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      // avoid leaks: registry, rpcClient, ...<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      LOG.debug("connection construction failed", e);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      close();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      throw e;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  /**<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param conn The connection for which to replace the generator.<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @return old nonce generator.<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  @VisibleForTesting<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      + cnm.getClass().getName());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    nonceGenerator = cnm;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    return ng;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * Look for an exception we know in the remote exception:<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * - hadoop.ipc wrapped exceptions<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * - nested exceptions<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   *<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   *            ThrottlingException<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @return null if we didn't find the exception, the exception otherwise.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public static Throwable findException(Object exception) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (exception == null || !(exception instanceof Throwable)) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      return null;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Throwable cur = (Throwable) exception;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    while (cur != null) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      if (cur instanceof RegionMovedException || cur instanceof RegionOpeningException<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          || cur instanceof RegionTooBusyException || cur instanceof ThrottlingException<a name="line.301"></a>
-<span class="sourceLineNo">302</span>          || cur instanceof RetryImmediatelyException) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return cur;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      }<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      if (cur instanceof RemoteException) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        RemoteException re = (RemoteException) cur;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        cur = re.unwrapRemoteException(<a name="line.307"></a>
-<span class="sourceLineNo">308</span>            RegionOpeningException.class, RegionMovedException.class,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>            RegionTooBusyException.class);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        if (cur == null) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          cur = re.unwrapRemoteException();<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        // unwrapRemoteException can return the exception given as a parameter when it cannot<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        //  unwrap it. In this case, there is no need to look further<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        // noinspection ObjectEquality<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        if (cur == re) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          return null;<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      } else {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        cur = cur.getCause();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">239</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // Do we publish the status?<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (shouldListen) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        if (listenerClass == null) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.244"></a>
+<span class="sourceLineNo">245</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.247"></a>
+<span class="sourceLineNo">248</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                @Override<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                public void newDead(ServerName sn) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                  clearCaches(sn);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                  rpcClient.cancelConnections(sn);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>              }, conf, listenerClass);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      }<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (Throwable e) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      // avoid leaks: registry, rpcClient, ...<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      LOG.debug("connection construction failed", e);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      close();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      throw e;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * @param conn The connection for which to replace the generator.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * @return old nonce generator.<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  @VisibleForTesting<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      + cnm.getClass().getName());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    nonceGenerator = cnm;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return ng;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    return getTable(TableName.valueOf(tableName));<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    return getTable(TableName.valueOf(tableName));<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>  @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    return getTable(tableName, getBatchPool());<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>  @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    if (params.getTableName() == null) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (params.getPool() == null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<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 null;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  @Override<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return getTable(TableName.valueOf(tableName));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  @Override<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    return getTable(TableName.valueOf(tableName));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return getTable(tableName, getBatchPool());<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    if (params.getTableName() == null) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (params.getPool() == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<a name="line.366"></a>
+<span class="sourceLineNo">323</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<a name="line.331"></a>
+<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>  @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    return new HRegionLocator(tableName, this);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  public Admin getAdmin() throws IOException {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    return new HBaseAdmin(this);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>  @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public MetricsConnection getConnectionMetrics() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return this.metrics;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  private ExecutorService getBatchPool() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (batchPool == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      synchronized (this) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        if (batchPool == null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.353"></a>
+<span class="sourceLineNo">354</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          this.cleanupPool = true;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    return this.batchPool;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    // shared HTable thread executor not yet initialized<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    if (maxThreads == 0) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.366"></a>
 <span class="sourceLineNo">367</span>    }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.369"></a>
+<span class="sourceLineNo">368</span>    if (coreThreads == 0) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<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>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return new HRegionLocator(tableName, this);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  public Admin getAdmin() throws IOException {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    return new HBaseAdmin(this);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>  @Override<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  public MetricsConnection getConnectionMetrics() {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    return this.metrics;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  private ExecutorService getBatchPool() {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    if (batchPool == null) {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      synchronized (this) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        if (batchPool == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.398"></a>
-<span class="sourceLineNo">399</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          this.cleanupPool = true;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      }<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    }<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    return this.batchPool;<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>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    // shared HTable thread executor not yet initialized<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    if (maxThreads == 0) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (coreThreads == 0) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    }<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    if (workQueue == null) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      workQueue =<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.420"></a>
-<span class="sourceLineNo">421</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.421"></a>
-<span class="sourceLineNo">422</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        coreThreads,<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        maxThreads,<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        keepAliveTime,<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        TimeUnit.SECONDS,<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        workQueue,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    if (this.metaLookupPool == null) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      synchronized (this) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (this.metaLookupPool == null) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          //Some of the threads would be used for meta replicas<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          //the queue is full, a new thread will be started<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          this.metaLookupPool = getThreadPool(<a name="line.443"></a>
-<span class="sourceLineNo">444</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.444"></a>
-<span class="sourceLineNo">445</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.445"></a>
-<span class="sourceLineNo">446</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return this.metaLookupPool;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    return batchPool;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
+<span class="sourceLineNo">371</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    if (workQueue == null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      workQueue =<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        coreThreads,<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        maxThreads,<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        keepAliveTime,<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        TimeUnit.SECONDS,<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        workQueue,<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    if (this.metaLookupPool == null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      synchronized (this) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (this.metaLookupPool == null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          //Some of the threads would be used for meta replicas<a name="line.394"></a>
+<span class="sourceLineNo">395</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.395"></a>
+<span class="sourceLineNo">396</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.396"></a>
+<span class="sourceLineNo">397</span>          //the queue is full, a new thread will be started<a name="line.397"></a>
+<span class="sourceLineNo">398</span>          this.metaLookupPool = getThreadPool(<a name="line.398"></a>
+<span class="sourceLineNo">399</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.399"></a>
+<span class="sourceLineNo">400</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.400"></a>
+<span class="sourceLineNo">401</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      }<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return this.metaLookupPool;<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>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    return batchPool;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>  private void shutdownPools() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      shutdownBatchPool(this.batchPool);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    pool.shutdown();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        pool.shutdownNow();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    } catch (InterruptedException e) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      pool.shutdownNow();<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>  /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * @return The cluster registry implementation to use.<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private Registry setupRegistry() throws IOException {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    return RegistryFactory.getRegistry(this);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span>  /**<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   * For tests only.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  @VisibleForTesting<a name="line.446"></a>
+<span class="sourceLineNo">447</span>  RpcClient getRpcClient() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    return rpcClient;<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>   * An identifier that will remain the same for a given connection.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>   */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>  public String toString(){<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    return "hconnection-0x" + Integer.toHexString(hashCode());<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>  protected String clusterId = null;<a name="line.459"></a>
 <span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private void shutdownPools() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      shutdownBatchPool(this.batchPool);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.466"></a>
+<span class="sourceLineNo">461</span>  protected void retrieveClusterId() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    if (clusterId != null) return;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    this.clusterId = this.registry.getClusterId();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    if (clusterId == null) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      clusterId = HConstants.CLUSTER_ID_DEFAULT;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      LOG.debug("clusterid came back null, using default " + clusterId);<a name="line.466"></a>
 <span class="sourceLineNo">467</span>    }<a name="line.467"></a>
 <span class="sourceLineNo">468</span>  }<a name="line.468"></a>
 <span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    pool.shutdown();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        pool.shutdownNow();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    } catch (InterruptedException e) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      pool.shutdownNow();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  /**<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @return The cluster registry implementation to use.<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   */<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  private Registry setupRegistry() throws IOException {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    return RegistryFactory.getRegistry(this);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>  /**<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * For tests only.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   */<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  @VisibleForTesting<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  RpcClient getRpcClient() {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return rpcClient;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * An identifier that will remain the same for a given connection.<a name="line.497"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public Configuration getConfiguration() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return this.conf;<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>  private void checkIfBaseNodeAvailable(ZooKeeperWatcher zkw)<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    throws MasterNotRunningException {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    String errorMsg;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    try {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (ZKUtil.checkExists(zkw, zkw.baseZNode) == -1) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        errorMsg = "The node " + zkw.baseZNode+" is not in ZooKeeper. "<a name="line.480"></a>
+<span class="sourceLineNo">481</span>          + "It should have been written by the master. "<a name="line.481"></a>
+<span class="sourceLineNo">482</span>

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 7fe4ad8..066a233 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2016 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 1665,
-             Errors: 12894,
+      <title>File: 1667,
+             Errors: 12893,
              Warnings: 0,
              Infos: 0
       </title>
@@ -200,6 +200,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil.java">org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.ShutdownHook.java">org/apache/hadoop/hbase/regionserver/ShutdownHook.java</a>
                 </td>
                 <td>
@@ -4022,6 +4036,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.CallQueueTooBigException.java">org/apache/hadoop/hbase/CallQueueTooBigException.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.ipc.BlockingRpcCallback.java">org/apache/hadoop/hbase/ipc/BlockingRpcCallback.java</a>
                 </td>
                 <td>
@@ -6822,7 +6850,7 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.io.hfile.CachedBlock.java">org/apache/hadoop/hbase/io/hfile/CachedBlock.java</a>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.thrift2.generated.TScan.java">org/apache/hadoop/hbase/thrift2/generated/TScan.java</a>
                 </td>
                 <td>
                   0
@@ -6836,7 +6864,7 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.thrift2.generated.TScan.java">org/apache/hadoop/hbase/thrift2/generated/TScan.java</a>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.io.hfile.CachedBlock.java">org/apache/hadoop/hbase/io/hfile/CachedBlock.java</a>
                 </td>
                 <td>
                   0
@@ -19501,7 +19529,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  2
                 </td>
               </tr>
                           <tr>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index 8567df8..4763252 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Installing Apache HBase (TM) on Windows using Cygwin</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -673,7 +673,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index d5c64a8..ed2d0f4 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -518,7 +518,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 65f3140..da78d1b 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1593,7 +1593,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index edd52d5..12d57a0 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -312,7 +312,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 6569ebf..816ca29 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -786,7 +786,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-frame.html b/devapidocs/allclasses-frame.html
index 442819e..b8ec02e 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -224,6 +224,7 @@
 <li><a href="org/apache/hadoop/hbase/ipc/CallerDisconnectedException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">CallerDisconnectedException</a></li>
 <li><a href="org/apache/hadoop/hbase/thrift/CallQueue.html" title="class in org.apache.hadoop.hbase.thrift" target="classFrame">CallQueue</a></li>
 <li><a href="org/apache/hadoop/hbase/thrift/CallQueue.Call.html" title="class in org.apache.hadoop.hbase.thrift" target="classFrame">CallQueue.Call</a></li>
+<li><a href="org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase" target="classFrame">CallQueueTooBigException</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">CallRunner</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">CallTimeoutException</a></li>
 <li><a href="org/apache/hadoop/hbase/tool/Canary.html" title="class in org.apache.hadoop.hbase.tool" target="classFrame">Canary</a></li>
@@ -299,6 +300,7 @@
 <li><a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html" title="interface in org.apache.hadoop.hbase.client.backoff" target="classFrame"><i>ClientBackoffPolicy</i></a></li>
 <li><a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.html" title="class in org.apache.hadoop.hbase.client.backoff" target="classFrame">ClientBackoffPolicyFactory</a></li>
 <li><a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.NoBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client.backoff" target="classFrame">ClientBackoffPolicyFactory.NoBackoffPolicy</a></li>
+<li><a href="org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions" target="classFrame">ClientExceptionsUtil</a></li>
 <li><a href="org/apache/hadoop/hbase/client/ClientIdGenerator.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">ClientIdGenerator</a></li>
 <li><a href="org/apache/hadoop/hbase/client/ClientScanner.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">ClientScanner</a></li>
 <li><a href="org/apache/hadoop/hbase/client/ClientSideRegionScanner.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">ClientSideRegionScanner</a></li>
@@ -1732,7 +1734,6 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><i>RpcSchedulerFactory</i></a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">RpcServer</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">RpcServer.BlockingServiceAndInterface</a></li>
-<li><a href="org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">RpcServer.CallQueueTooBigException</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc" target="classFrame"><i>RpcServerInterface</i></a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RSDumpServlet.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RSDumpServlet</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RSRpcServices</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index 00a724f..f684461 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -224,6 +224,7 @@
 <li><a href="org/apache/hadoop/hbase/ipc/CallerDisconnectedException.html" title="class in org.apache.hadoop.hbase.ipc">CallerDisconnectedException</a></li>
 <li><a href="org/apache/hadoop/hbase/thrift/CallQueue.html" title="class in org.apache.hadoop.hbase.thrift">CallQueue</a></li>
 <li><a href="org/apache/hadoop/hbase/thrift/CallQueue.Call.html" title="class in org.apache.hadoop.hbase.thrift">CallQueue.Call</a></li>
+<li><a href="org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc">CallTimeoutException</a></li>
 <li><a href="org/apache/hadoop/hbase/tool/Canary.html" title="class in org.apache.hadoop.hbase.tool">Canary</a></li>
@@ -299,6 +300,7 @@
 <li><a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html" title="interface in org.apache.hadoop.hbase.client.backoff"><i>ClientBackoffPolicy</i></a></li>
 <li><a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.html" title="class in org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicyFactory</a></li>
 <li><a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.NoBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicyFactory.NoBackoffPolicy</a></li>
+<li><a href="org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">ClientExceptionsUtil</a></li>
 <li><a href="org/apache/hadoop/hbase/client/ClientIdGenerator.html" title="class in org.apache.hadoop.hbase.client">ClientIdGenerator</a></li>
 <li><a href="org/apache/hadoop/hbase/client/ClientScanner.html" title="class in org.apache.hadoop.hbase.client">ClientScanner</a></li>
 <li><a href="org/apache/hadoop/hbase/client/ClientSideRegionScanner.html" title="class in org.apache.hadoop.hbase.client">ClientSideRegionScanner</a></li>
@@ -1732,7 +1734,6 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.html" title="interface in org.apache.hadoop.hbase.regionserver"><i>RpcSchedulerFactory</i></a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a></li>
-<li><a href="org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc"><i>RpcServerInterface</i></a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RSDumpServlet.html" title="class in org.apache.hadoop.hbase.regionserver">RSDumpServlet</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index d84f32f..91e13be 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -6461,6 +6461,10 @@
 <dd>
 <div class="block">This is a running count of the size of all outstanding calls by size.</div>
 </dd>
+<dt><a href="./org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">CallQueueTooBigException</span></a> - Exception in <a href="./org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/CallQueueTooBigException.html#CallQueueTooBigException()">CallQueueTooBigException()</a></span> - Constructor for exception org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">CallRunner</span></a> - Class in <a href="./org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></dt>
 <dd>
 <div class="block">The request processing logic, which is usually executed in thread pools provided by an
@@ -8960,6 +8964,10 @@
 </dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.NoBackoffPolicy.html#ClientBackoffPolicyFactory.NoBackoffPolicy(org.apache.hadoop.conf.Configuration)">ClientBackoffPolicyFactory.NoBackoffPolicy(Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.client.backoff.<a href="./org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.NoBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client.backoff">ClientBackoffPolicyFactory.NoBackoffPolicy</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="./org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">ClientExceptionsUtil</span></a> - Class in <a href="./org/apache/hadoop/hbase/exceptions/package-summary.html">org.apache.hadoop.hbase.exceptions</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#ClientExceptionsUtil()">ClientExceptionsUtil()</a></span> - Constructor for class org.apache.hadoop.hbase.exceptions.<a href="./org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">ClientExceptionsUtil</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/PerClientRandomNonceGenerator.html#clientId">clientId</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="./org/apache/hadoop/hbase/client/PerClientRandomNonceGenerator.html" title="class in org.apache.hadoop.hbase.client">PerClientRandomNonceGenerator</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/client/ClientIdGenerator.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">ClientIdGenerator</span></a> - Class in <a href="./org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
@@ -23168,7 +23176,7 @@
 </dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/io/util/LRUDictionary.html#findEntry(byte[],%20int,%20int)">findEntry(byte[], int, int)</a></span> - Method in class org.apache.hadoop.hbase.io.util.<a href="./org/apache/hadoop/hbase/io/util/LRUDictionary.html" title="class in org.apache.hadoop.hbase.io.util">LRUDictionary</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/client/ConnectionImplementation.html#findException(java.lang.Object)">findException(Object)</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="./org/apache/hadoop/hbase/client/ConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation</a></dt>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#findException(java.lang.Object)">findException(Object)</a></span> - Static method in class org.apache.hadoop.hbase.exceptions.<a href="./org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">ClientExceptionsUtil</a></dt>
 <dd>
 <div class="block">Look for an exception we know in the remote exception:
  - hadoop.ipc wrapped exceptions
@@ -46240,6 +46248,8 @@
 <dd>
 <div class="block">A quick test that hbase:meta is assigned; blocks for short time only.</div>
 </dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#isMetaClearingException(java.lang.Throwable)">isMetaClearingException(Throwable)</a></span> - Static method in class org.apache.hadoop.hbase.exceptions.<a href="./org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">ClientExceptionsUtil</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/regionserver/wal/WALEdit.html#isMetaEdit()">isMetaEdit()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="./org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/regionserver/wal/WALEdit.html#isMetaEditFamily(byte[])">isMetaEditFamily(byte[])</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.wal.<a href="./org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a></dt>
@@ -47029,6 +47039,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#isSourceActive()">isSourceActive()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="./org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html#isSpecialException(java.lang.Throwable)">isSpecialException(Throwable)</a></span> - Static method in class org.apache.hadoop.hbase.exceptions.<a href="./org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">ClientExceptionsUtil</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/HRegionInfo.html#isSplit()">isSplit()</a></span> - Method in class org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/master/RegionState.html#isSplit()">isSplit()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="./org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a></dt>
@@ -65683,6 +65695,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/util/hbck/ReplicationChecker.html#queuesClient">queuesClient</a></span> - Variable in class org.apache.hadoop.hbase.util.hbck.<a href="./org/apache/hadoop/hbase/util/hbck/ReplicationChecker.html" title="class in org.apache.hadoop.hbase.util.hbck">ReplicationChecker</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#queueSize">queueSize</a></span> - Variable in class org.apache.hadoop.hbase.ipc.<a href="./org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">FifoRpcScheduler</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/ipc/RpcExecutor.RandomQueueBalancer.html#queueSize">queueSize</a></span> - Variable in class org.apache.hadoop.hbase.ipc.<a href="./org/apache/hadoop/hbase/ipc/RpcExecutor.RandomQueueBalancer.html" title="class in org.apache.hadoop.hbase.ipc">RpcExecutor.RandomQueueBalancer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#queueSize">queueSize</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="./org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureScheduler</a></dt>
@@ -73021,10 +73035,6 @@ service.</div>
 </dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/ipc/RpcServer.Call.html#RpcServer.Call(int,%20com.google.protobuf.BlockingService,%20com.google.protobuf.Descriptors.MethodDescriptor,%20org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader,%20com.google.protobuf.Message,%20org.apache.hadoop.hbase.CellScanner,%20org.apache.hadoop.hbase.ipc.RpcServer.Connection,%20org.apache.hadoop.hbase.ipc.RpcServer.Responder,%20long,%20org.apache.htrace.TraceInfo,%20java.net.InetAddress)">RpcServer.Call(int, BlockingService, Descriptors.MethodDescriptor, RPCProtos.RequestHeader, Message, CellScanner, RpcServer.Connection, RpcServer.Responder, long, TraceInfo, InetAddress)</a></span> - Constructor for 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><a href="./org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">RpcServer.CallQueueTooBigException</span></a> - Exception in <a href="./org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="strong"><a href="./org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html#RpcServer.CallQueueTooBigException()">RpcServer.CallQueueTooBigException()</a></span> - Constructor for exception org.apache.hadoop.hbase.ipc.<a href="./org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</a></dt>
-<dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">RpcServer.Connection</span></a> - Class in <a href="./org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></dt>
 <dd>
 <div class="block">Reads calls from a connection and queues them for handling.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ByteBufferedKeyOnlyKeyValue.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ByteBufferedKeyOnlyKeyValue.html b/devapidocs/org/apache/hadoop/hbase/ByteBufferedKeyOnlyKeyValue.html
index d35e7ce..b5b7abc 100644
--- a/devapidocs/org/apache/hadoop/hbase/ByteBufferedKeyOnlyKeyValue.html
+++ b/devapidocs/org/apache/hadoop/hbase/ByteBufferedKeyOnlyKeyValue.html
@@ -36,7 +36,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/hadoop/hbase/ByteBufferedCell.html" title="class in org.apache.hadoop.hbase"><span class="strong">Prev Class</span></a></li>
-<li><a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
+<li><a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/hadoop/hbase/ByteBufferedKeyOnlyKeyValue.html" target="_top">Frames</a></li>
@@ -852,7 +852,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/ByteBufferedCell.html" titl
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/hadoop/hbase/ByteBufferedCell.html" title="class in org.apache.hadoop.hbase"><span class="strong">Prev Class</span></a></li>
-<li><a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
+<li><a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/hadoop/hbase/ByteBufferedKeyOnlyKeyValue.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/CallQueueTooBigException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/CallQueueTooBigException.html b/devapidocs/org/apache/hadoop/hbase/CallQueueTooBigException.html
new file mode 100644
index 0000000..de5b0c9
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/CallQueueTooBigException.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/CallQueueTooBigException.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/ByteBufferedKeyOnlyKeyValue.html" title="class in org.apache.hadoop.hbase"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/hadoop/hbase/CallQueueTooBigException.html" target="_top">Frames</a></li>
+<li><a href="CallQueueTooBigException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>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</div>
+<h2 title="Class CallQueueTooBigException" class="title">Class CallQueueTooBigException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/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><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">java.io.IOException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.CallQueueTooBigException</li>
+</ul>
+</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/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre><a href="../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Public.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Public</a>
+<a href="../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Evolving.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceStability.Evolving</a>
+public class <a href="../../../../src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html#line.29">CallQueueTooBigException</a>
+extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.apache.hadoop.hbase.CallQueueTooBigException">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" 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><strong><a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html#CallQueueTooBigException()">CallQueueTooBigException</a></strong>()</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.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or inter
 face in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lan
 g/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement[])" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CallQueueTooBigException()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CallQueueTooBigException</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html#line.30">CallQueueTooBigException</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/CallQueueTooBigException.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/ByteBufferedKeyOnlyKeyValue.html" title="class in org.apache.hadoop.hbase"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/hadoop/hbase/CallQueueTooBigException.html" target="_top">Frames</a></li>
+<li><a href="CallQueueTooBigException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2016 <a href="http://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/39cf5e9b/devapidocs/org/apache/hadoop/hbase/Cell.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/Cell.html b/devapidocs/org/apache/hadoop/hbase/Cell.html
index 856de9c..31103a5 100644
--- a/devapidocs/org/apache/hadoop/hbase/Cell.html
+++ b/devapidocs/org/apache/hadoop/hbase/Cell.html
@@ -35,7 +35,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/hadoop/hbase/ByteBufferedKeyOnlyKeyValue.html" title="class in org.apache.hadoop.hbase"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">Prev Class</span></a></li>
 <li><a href="../../../../org/apache/hadoop/hbase/CellComparator.html" title="class in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -464,7 +464,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/Cell.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/hadoop/hbase/ByteBufferedKeyOnlyKeyValue.html" title="class in org.apache.hadoop.hbase"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">Prev Class</span></a></li>
 <li><a href="../../../../org/apache/hadoop/hbase/CellComparator.html" title="class in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html b/devapidocs/org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html
new file mode 100644
index 0000000..0c7e41b
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.apache.hadoop.hbase.CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">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/class-use/CallQueueTooBigException.html" target="_top">Frames</a></li>
+<li><a href="CallQueueTooBigException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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.CallQueueTooBigException" class="title">Uses of Class<br>org.apache.hadoop.hbase.CallQueueTooBigException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table 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/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</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.ipc">org.apache.hadoop.hbase.ipc</a></td>
+<td class="colLast">
+<div class="block">Tools to help define network clients and servers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.ipc">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a> in <a href="../../../../../org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a> declared as <a href="../../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></code></td>
+<td class="colLast"><span class="strong">RpcServer.</span><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CALL_QUEUE_TOO_BIG_EXCEPTION">CALL_QUEUE_TOO_BIG_EXCEPTION</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">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/class-use/CallQueueTooBigException.html" target="_top">Frames</a></li>
+<li><a href="CallQueueTooBigException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/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 bdf8470..071ef85 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
@@ -2250,41 +2250,45 @@ service.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">ClientExceptionsUtil</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/DeserializationException.html" title="class in org.apache.hadoop.hbase.exceptions">DeserializationException</a></strong></code>
 <div class="block">Failed deserialization.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/HBaseException.html" title="class in org.apache.hadoop.hbase.exceptions">HBaseException</a></strong></code>
 <div class="block">Base checked exception in HBase.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/IllegalArgumentIOException.html" title="class in org.apache.hadoop.hbase.exceptions">IllegalArgumentIOException</a></strong></code>
 <div class="block">Exception thrown when an illegal argument is passed to a function/procedure.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/OutOfOrderScannerNextException.html" title="class in org.apache.hadoop.hbase.exceptions">OutOfOrderScannerNextException</a></strong></code>
 <div class="block">Thrown by a RegionServer while doing next() calls on a ResultScanner.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/RegionMovedException.html" title="class in org.apache.hadoop.hbase.exceptions">RegionMovedException</a></strong></code>
 <div class="block">Subclass if the server knows the region is now on another server.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/RegionOpeningException.html" title="class in org.apache.hadoop.hbase.exceptions">RegionOpeningException</a></strong></code>
 <div class="block">Subclass if the server knows the region is now on another server.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/exceptions/TimeoutIOException.html" title="class in org.apache.hadoop.hbase.exceptions">TimeoutIOException</a></strong></code>
 <div class="block">Exception thrown when a blocking operation times out.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceAudience.Public.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceAudience.Public.html b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceAudience.Public.html
index 69c1e2a..fcb5a4c 100644
--- a/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceAudience.Public.html
+++ b/devapidocs/org/apache/hadoop/hbase/classification/class-use/InterfaceAudience.Public.html
@@ -257,93 +257,97 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <caption><span>Classes in <a href="../../../../../../org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a> with annotations of type <a href="../../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Public.html" title="annotation in org.apache.hadoop.hbase.classification">InterfaceAudience.Public</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Interface and Description</th>
+<th class="colLast" scope="col">Class and Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>interface&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></strong></code>
 <div class="block">The unit of storage in HBase consisting of the following fields:
  <br></div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/CellUtil.html" title="class in org.apache.hadoop.hbase">CellUtil</a></strong></code>
 <div class="block">Utility methods helpful slinging <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase"><code>Cell</code></a> instances.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ClockOutOfSyncException.html" title="class in org.apache.hadoop.hbase">ClockOutOfSyncException</a></strong></code>
 <div class="block">This exception is thrown by the master when a region server clock skew is
  too high.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a></strong></code>
 <div class="block">Status information on the HBase cluster.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a></strong></code>
 <div class="block">Subclass if exception is not meant to be retried: e.g.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/DroppedSnapshotException.html" title="class in org.apache.hadoop.hbase">DroppedSnapshotException</a></strong></code>
 <div class="block">Thrown during flush if the possibility snapshot content was not properly
  persisted into store files.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HBaseConfiguration.html" title="class in org.apache.hadoop.hbase">HBaseConfiguration</a></strong></code>
 <div class="block">Adds HBase configuration files to a Configuration</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HBaseInterfaceAudience.html" title="class in org.apache.hadoop.hbase">HBaseInterfaceAudience</a></strong></code>
 <div class="block">This class defines constants for different classes of hbase limited private apis</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></strong></code>
 <div class="block">All hbase specific IOExceptions should be subclasses of HBaseIOException</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a></strong></code>
 <div class="block">An HColumnDescriptor contains information about a column family such as the
  number of versions, compression settings, etc.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></strong></code>
 <div class="block">HConstants holds a bunch of HBase-related constants</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a></strong></code>
 <div class="block">Information about a region.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></strong></code>
 <div class="block">Data structure to hold HRegionInfo and the address for the hosting
  HRegionServer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></strong></code>
 <div class="block">HTableDescriptor contains the details about an HBase table  such as the descriptors of
@@ -352,73 +356,73 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  when the region split should occur, coprocessors associated with it etc...</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/InvalidFamilyOperationException.html" title="class in org.apache.hadoop.hbase">InvalidFamilyOperationException</a></strong></code>
 <div class="block">Thrown if a request is table schema modification is requested but
  made for an invalid family name.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase">KeepDeletedCells</a></strong></code>
 <div class="block">Ways to keep cells marked for delete around.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/LocalHBaseCluster.html" title="class in org.apache.hadoop.hbase">LocalHBaseCluster</a></strong></code>
 <div class="block">This class creates a single process HBase cluster.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a></strong></code>
 <div class="block">Thrown if the master is not running</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/MultiActionResultTooLarge.html" title="class in org.apache.hadoop.hbase">MultiActionResultTooLarge</a></strong></code>
 <div class="block">Exception thrown when the result needs to be chunked on the server side.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a></strong></code>
 <div class="block">Namespace POJO class.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.Builder.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor.Builder</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/NamespaceExistException.html" title="class in org.apache.hadoop.hbase">NamespaceExistException</a></strong></code>
 <div class="block">Thrown when a namespace exists but should not</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/NamespaceNotFoundException.html" title="class in org.apache.hadoop.hbase">NamespaceNotFoundException</a></strong></code>
 <div class="block">Thrown when a namespace can not be located</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/NotAllMetaRegionsOnlineException.html" title="class in org.apache.hadoop.hbase">NotAllMetaRegionsOnlineException</a></strong></code>
 <div class="block">Thrown when an operation requires the root and all meta regions to be online</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/NotServingRegionException.html" title="class in org.apache.hadoop.hbase">NotServingRegionException</a></strong></code>
 <div class="block">Thrown by a region server if it is sent a request for a region it is not
  serving.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a></strong></code>
 <div class="block">This exception is thrown by the master when a region server was shut down and
@@ -427,95 +431,95 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  operations, or when an operation is performed on a region server that is still starting.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a></strong></code>
 <div class="block">Procedure information</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a></strong></code>
 <div class="block">Thrown when something happens related to region handling.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/RegionLoad.html" title="class in org.apache.hadoop.hbase">RegionLoad</a></strong></code>
 <div class="block">Encapsulates per-region load metrics.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/RegionTooBusyException.html" title="class in org.apache.hadoop.hbase">RegionTooBusyException</a></strong></code>
 <div class="block">Thrown by a region server if it will block and wait to serve a request.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/RetryImmediatelyException.html" title="class in org.apache.hadoop.hbase">RetryImmediatelyException</a></strong></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ServerLoad.html" title="class in org.apache.hadoop.hbase">ServerLoad</a></strong></code>
 <div class="block">This class is used for exporting current state of load on a RegionServer.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></strong></code>
 <div class="block">Instance of an HBase ServerName.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/TableExistsException.html" title="class in org.apache.hadoop.hbase">TableExistsException</a></strong></code>
 <div class="block">Thrown when a table exists but should not</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a></strong></code>
 <div class="block">Failed to find .tableinfo file under table dir</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></strong></code>
 <div class="block">Immutable POJO class for representing a table name.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/TableNotDisabledException.html" title="class in org.apache.hadoop.hbase">TableNotDisabledException</a></strong></code>
 <div class="block">Thrown if a table should be offline but is not</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/TableNotEnabledException.html" title="class in org.apache.hadoop.hbase">TableNotEnabledException</a></strong></code>
 <div class="block">Thrown if a table should be enabled but is not</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a></strong></code>
 <div class="block">Thrown when a table can not be located</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/UnknownRegionException.html" title="class in org.apache.hadoop.hbase">UnknownRegionException</a></strong></code>
 <div class="block">Thrown when we are asked to operate on a region we know nothing about.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/UnknownScannerException.html" title="class in org.apache.hadoop.hbase">UnknownScannerException</a></strong></code>
 <div class="block">Thrown if a region server is passed an unknown scanner id.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ZooKeeperConnectionException.html" title="class in org.apache.hadoop.hbase">ZooKeeperConnectionException</a></strong></code>
 <div class="block">Thrown if the client can't connect to zookeeper</div>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html
index bf27873..e4df7cc 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Listener.Reader.html
@@ -75,2529 +75,2534 @@
 <span class="sourceLineNo">067</span><a name="line.67"></a>
 <span class="sourceLineNo">068</span>import org.apache.commons.logging.Log;<a name="line.68"></a>
 <span class="sourceLineNo">069</span>import org.apache.commons.logging.LogFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.conf.Configuration;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HConstants;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.Server;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.TableName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.User;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.io.BytesWritable;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.io.IntWritable;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.io.Writable;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.io.WritableUtils;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.util.StringUtils;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.htrace.TraceInfo;<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import com.google.protobuf.BlockingService;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import com.google.protobuf.CodedInputStream;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import com.google.protobuf.Message;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import com.google.protobuf.ServiceException;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import com.google.protobuf.TextFormat;<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>/**<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * An RPC server that hosts protobuf described Services.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> *<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.143"></a>
-<span class="sourceLineNo">144</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * and loops till done.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> *<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.151"></a>
-<span class="sourceLineNo">152</span> * and keep taking while the server is up.<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *<a name="line.153"></a>
-<span class="sourceLineNo">154</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * queue for Responder to pull from and return result to client.<a name="line.155"></a>
-<span class="sourceLineNo">156</span> *<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * @see RpcClientImpl<a name="line.157"></a>
-<span class="sourceLineNo">158</span> */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.159"></a>
-<span class="sourceLineNo">160</span>@InterfaceStability.Evolving<a name="line.160"></a>
-<span class="sourceLineNo">161</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      = new CallQueueTooBigException();<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final boolean authorize;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private boolean isSecurityEnabled;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final byte CURRENT_VERSION = 0;<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>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * How many calls/handler are allowed in the queue.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * The maximum size that we can hold in the RPC queue<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private final IPCUtil ipcUtil;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    Server.class.getName());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected ServiceAuthorizationManager authManager;<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * after the call returns.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  protected final InetSocketAddress bindAddress;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected int port;                             // port we listen on<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private int readThreads;                        // number of read threads<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.210"></a>
-<span class="sourceLineNo">211</span>                                                  // which a client may be<a name="line.211"></a>
-<span class="sourceLineNo">212</span>                                                  // disconnected<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.213"></a>
-<span class="sourceLineNo">214</span>                                                  // connections after which we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>                                                  // will start cleaning up idle<a name="line.215"></a>
-<span class="sourceLineNo">216</span>                                                  // connections<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.217"></a>
-<span class="sourceLineNo">218</span>                                                  // connections to nuke<a name="line.218"></a>
-<span class="sourceLineNo">219</span>                                                  // during a cleanup<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected MetricsHBaseServer metrics;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  protected final Configuration conf;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private int maxQueueSize;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  protected int socketSendBufferSize;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  protected final long purgeTimeout;    // in milliseconds<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  volatile boolean running = true;<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  /**<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * for business by the call to {@link #start()}.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  volatile boolean started = false;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final Counter callQueueSize = new Counter();<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  //maintain a list<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  //of client connections<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  private Listener listener = null;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected Responder responder = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  protected int numConnections = 0;<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /** Default value for above params */<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  private final int warnResponseTime;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  private final int warnResponseSize;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  private final Server server;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private final RpcScheduler scheduler;<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private UserProvider userProvider;<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>  private final BoundedByteBufferPool reservoir;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * the result.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  class Call implements RpcCallContext {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    protected int id;                             // the client's call id<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    protected BlockingService service;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    protected MethodDescriptor md;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    protected RequestHeader header;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    protected Message param;                      // the parameter passed<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // Optional cell data passed outside of protobufs.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    protected CellScanner cellScanner;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    protected Connection connection;              // connection to client<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    protected long timestamp;      // the time received when response is null<a name="line.295"></a>
-<span class="sourceLineNo">296</span>                                   // the time served when response is not null<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>     * Chain of buffers to send as response.<a name="line.298"></a>
-<span class="sourceLineNo">299</span>     */<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    protected BufferChain response;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    protected Responder responder;<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>    protected long size;                          // size of current call<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    protected boolean isError;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    protected TraceInfo tinfo;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    private ByteBuffer cellBlock = null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>    private User user;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    private InetAddress remoteAddress;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    private RpcCallback callback;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private long responseCellSize = 0;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    private long responseBlockSize = 0;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    private boolean retryImmediatelySupported;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.319"></a>
-<span class="sourceLineNo">320</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      this.id = id;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      this.service = service;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      this.md = md;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      this.header = header;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      this.param = param;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      this.cellScanner = cellScanner;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      this.connection = connection;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      this.timestamp = System.currentTimeMillis();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      this.response = null;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      this.responder = responder;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      this.isError = false;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      this.size = size;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      this.tinfo = tinfo;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      this.remoteAddress = remoteAddress;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      this.retryImmediatelySupported =<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          connection == null? null: connection.retryImmediatelySupported;<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.341"></a>
-<span class="sourceLineNo">342</span>     * cleanup.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>     */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    void done() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        // Return buffer to reservoir now we are done with it.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        reservoir.putBuffer(this.cellBlock);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        this.cellBlock = null;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    public String toString() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      return toShortString() + " param: " +<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        " connection: " + connection.toString();<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>    protected RequestHeader getHeader() {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return this.header;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    /*<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     * the payload of a command<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    String toShortString() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      String serviceName = this.connection.service != null ?<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.373"></a>
-<span class="sourceLineNo">374</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      String serviceName = this.connection.service != null ?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      return serviceName + "." + methodName;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      this.response = new BufferChain(response);<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>    protected synchronized void setResponse(Object m, final CellScanner cells,<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        Throwable t, String errorMsg) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      if (this.isError) return;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      if (t != null) this.isError = true;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      BufferChain bc = null;<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      try {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        ResponseHeader.Builder headerBuilder = ResponseHeader.newBuilder();<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // Presume it a pb Message.  Could be null.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        Message result = (Message)m;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        // Call id.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        headerBuilder.setCallId(this.id);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        if (t != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          ExceptionResponse.Builder exceptionBuilder = ExceptionResponse.newBuilder();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          exceptionBuilder.setExceptionClassName(t.getClass().getName());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          exceptionBuilder.setStackTrace(errorMsg);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          exceptionBuilder.setDoNotRetry(t instanceof DoNotRetryIOException);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          if (t instanceof RegionMovedException) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>            // Special casing for this exception.  This is only one carrying a payload.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            // Do this instead of build a generic system for allowing exceptions carry<a name="line.408"></a>
-<span class="sourceLineNo">409</span>            // any kind of payload.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            RegionMovedException rme = (RegionMovedException)t;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>            exceptionBuilder.setHostname(rme.getHostname());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            exceptionBuilder.setPort(rme.getPort());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>          }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          // Set the exception as the result of the method invocation.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          headerBuilder.setException(exceptionBuilder.build());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        // Pass reservoir to buildCellBlock. Keep reference to returne so can add it back to the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        // reservoir when finished. This is hacky and the hack is not contained but benefits are<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // high when we can avoid a big buffer allocation on each rpc.<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        this.cellBlock = ipcUtil.buildCellBlock(this.connection.codec,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          this.connection.compressionCodec, cells, reservoir);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        if (this.cellBlock != null) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          CellBlockMeta.Builder cellBlockBuilder = CellBlockMeta.newBuilder();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          // Presumes the cellBlock bytebuffer has been flipped so limit has total size in it.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          cellBlockBuilder.setLength(this.cellBlock.limit());<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          headerBuilder.setCellBlockMeta(cellBlockBuilder.build());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        Message header = headerBuilder.build();<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>        // Organize the response as a set of bytebuffers rather than collect it all together inside<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        // one big byte array; save on allocations.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        ByteBuffer bbHeader = IPCUtil.getDelimitedMessageAsByteBuffer(header);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        ByteBuffer bbResult = IPCUtil.getDelimitedMessageAsByteBuffer(result);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        int totalSize = bbHeader.capacity() + (bbResult == null? 0: bbResult.limit()) +<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          (this.cellBlock == null? 0: this.cellBlock.limit());<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        ByteBuffer bbTotalSize = ByteBuffer.wrap(Bytes.toBytes(totalSize));<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        bc = new BufferChain(bbTotalSize, bbHeader, bbResult, this.cellBlock);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (connection.useWrap) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          bc = wrapWithSasl(bc);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      } catch (IOException e) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        LOG.warn("Exception while creating response " + e);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      this.response = bc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      // Once a response message is created and set to this.response, this Call can be treated as<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      // done. The Responder thread will do the n/w write of this message back to client.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      if (this.callback != null) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        try {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          this.callback.run();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        } catch (Exception e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          // Don't allow any exception here to kill this handler thread.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          LOG.warn("Exception while running the Rpc Callback.", e);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    private BufferChain wrapWithSasl(BufferChain bc)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      if (!this.connection.useSasl) return bc;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      // Looks like no way around this; saslserver wants a byte array.  I have to make it one.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      // THIS IS A BIG UGLY COPY.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      byte [] responseBytes = bc.getBytes();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      byte [] token;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      // synchronization may be needed since there can be multiple Handler<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      // threads using saslServer to wrap responses.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      synchronized (connection.saslServer) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        token = connection.saslServer.wrap(responseBytes, 0, responseBytes.length);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      if (LOG.isTraceEnabled()) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        LOG.trace("Adding saslServer wrapped token of size " + token.length<a name="line.470"></a>
-<span class="sourceLineNo">471</span>            + " as call response.");<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>      ByteBuffer bbTokenLength = ByteBuffer.wrap(Bytes.toBytes(token.length));<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      ByteBuffer bbTokenBytes = ByteBuffer.wrap(token);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      return new BufferChain(bbTokenLength, bbTokenBytes);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    }<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>    @Override<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    public boolean isClientCellBlockSupported() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return this.connection != null &amp;&amp; this.connection.codec != null;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    @Override<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    public long disconnectSince() {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      if (!connection.channel.isOpen()) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        return System.currentTimeMillis() - timestamp;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      } else {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        return -1L;<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><a name="line.492"></a>
-<span class="sourceLineNo">493</span>    public long getSize() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      return this.size;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>    public long getResponseCellSize() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return responseCellSize;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    public void incrementResponseCellSize(long cellSize) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      responseCellSize += cellSize;<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>    @Override<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    public long getResponseBlockSize() {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      return responseBlockSize;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>    @Override<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    public void incrementResponseBlockSize(long blockSize) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      responseBlockSize += blockSize;<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>    public synchronized void sendResponseIfReady() throws IOException {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.responder.doRespond(this);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public UserGroupInformation getRemoteUser() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      return connection.ugi;<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    }<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>    @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    public User getRequestUser() {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      return user;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    @Override<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    public String getRequestUserName() {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      User user = getRequestUser();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      return user == null? null: user.getShortName();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>    @Override<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    public InetAddress getRemoteAddress() {<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      return remoteAddress;<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>    @Override<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    public VersionInfo getClientVersionInfo() {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      return connection.getVersionInfo();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>    @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    public synchronized void setCallBack(RpcCallback callback) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.callback = callback;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    @Override<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    public boolean isRetryImmediatelySupported() {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      return retryImmediatelySupported;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<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>  /** Listens on the socket. Creates jobs for the handler threads*/<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private class Listener extends Thread {<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    private ServerSocketChannel acceptChannel = null; //the accept channel<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private Selector selector = null; //the selector that we use for the server<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    private Reader[] readers = null;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    private int currentReader = 0;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    private Random rand = new Random();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    private long lastCleanupRunTime = 0; //the last time when a cleanup connec-<a name="line.563"></a>
-<span class="sourceLineNo">564</span>                                         //-tion (for idle connections) ran<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    private long cleanupInterval = 10000; //the minimum interval between<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                                          //two cleanup runs<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    private int backlogLength;<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>    private ExecutorService readPool;<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>    public Listener(final String name) throws IOException {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      super(name);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      backlogLength = conf.getInt("hbase.ipc.server.listen.queue.size", 128);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      // Create a new server socket and set to non blocking mode<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      acceptChannel = ServerSocketChannel.open();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      acceptChannel.configureBlocking(false);<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Bind the server socket to the binding addrees (can be different from the default interface)<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      bind(acceptChannel.socket(), bindAddress, backlogLength);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      port = acceptChannel.socket().getLocalPort(); //Could be an ephemeral port<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      address = (InetSocketAddress)acceptChannel.socket().getLocalSocketAddress();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      // create a selector;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      selector= Selector.open();<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>      readers = new Reader[readThreads];<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      readPool = Executors.newFixedThreadPool(readThreads,<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        new ThreadFactoryBuilder().setNameFormat(<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          "RpcServer.reader=%d,bindAddress=" + bindAddress.getHostName() +<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          ",port=" + port).setDaemon(true).build());<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      for (int i = 0; i &lt; readThreads; ++i) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        Reader reader = new Reader();<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        readers[i] = reader;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        readPool.execute(reader);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      LOG.info(getName() + ": started " + readThreads + " reader(s) listening on port=" + port);<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>      // Register accepts on the server socket with the selector.<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      acceptChannel.register(selector, SelectionKey.OP_ACCEPT);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.setName("RpcServer.listener,port=" + port);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      this.setDaemon(true);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.CallQueueTooBigException;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.conf.Configuration;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HConstants;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.Server;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.TableName;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.User;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.io.BytesWritable;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.io.IntWritable;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.io.Writable;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.io.WritableUtils;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.util.StringUtils;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.htrace.TraceInfo;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import com.google.protobuf.BlockingService;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import com.google.protobuf.CodedInputStream;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import com.google.protobuf.Message;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import com.google.protobuf.ServiceException;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import com.google.protobuf.TextFormat;<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>/**<a name="line.140"></a>
+<span class="sourceLineNo">141</span> * An RPC server that hosts protobuf described Services.<a name="line.141"></a>
+<span class="sourceLineNo">142</span> *<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.143"></a>
+<span class="sourceLineNo">144</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.146"></a>
+<span class="sourceLineNo">147</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * and loops till done.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> *<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * and keep taking while the server is up.<a name="line.153"></a>
+<span class="sourceLineNo">154</span> *<a name="line.154"></a>
+<span class="sourceLineNo">155</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.155"></a>
+<span class="sourceLineNo">156</span> * queue for Responder to pull from and return result to client.<a name="line.156"></a>
+<span class="sourceLineNo">157</span> *<a name="line.157"></a>
+<span class="sourceLineNo">158</span> * @see RpcClientImpl<a name="line.158"></a>
+<span class="sourceLineNo">159</span> */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.160"></a>
+<span class="sourceLineNo">161</span>@InterfaceStability.Evolving<a name="line.161"></a>
+<span class="sourceLineNo">162</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      = new CallQueueTooBigException();<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  private final boolean authorize;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private boolean isSecurityEnabled;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public static final byte CURRENT_VERSION = 0;<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.176"></a>
+<span class="sourceLineNo">177</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * How many calls/handler are allowed in the queue.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * The maximum size that we can hold in the RPC queue<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final IPCUtil ipcUtil;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    Server.class.getName());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  protected ServiceAuthorizationManager authManager;<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * after the call returns.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  protected final InetSocketAddress bindAddress;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  protected int port;                             // port we listen on<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private int readThreads;                        // number of read threads<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                                  // which a client may be<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                                  // disconnected<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                                  // connections after which we<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                                  // will start cleaning up idle<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                                  // connections<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                                  // connections to nuke<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                                  // during a cleanup<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  protected MetricsHBaseServer metrics;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  protected final Configuration conf;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  private int maxQueueSize;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  protected int socketSendBufferSize;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  protected final long purgeTimeout;    // in milliseconds<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>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  volatile boolean running = true;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  /**<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * for business by the call to {@link #start()}.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   */<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  volatile boolean started = false;<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  /**<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  protected final Counter callQueueSize = new Counter();<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  //maintain a list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  //of client connections<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  private Listener listener = null;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  protected Responder responder = null;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  protected int numConnections = 0;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>  /** Default value for above params */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  private final int warnResponseTime;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  private final int warnResponseSize;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  private final Server server;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  private final RpcScheduler scheduler;<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>  private UserProvider userProvider;<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>  private final BoundedByteBufferPool reservoir;<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * the result.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  class Call implements RpcCallContext {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    protected int id;                             // the client's call id<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    protected BlockingService service;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    protected MethodDescriptor md;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    protected RequestHeader header;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    protected Message param;                      // the parameter passed<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    // Optional cell data passed outside of protobufs.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    protected CellScanner cellScanner;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    protected Connection connection;              // connection to client<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    protected long timestamp;      // the time received when response is null<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                   // the time served when response is not null<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span>     * Chain of buffers to send as response.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>     */<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    protected BufferChain response;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    protected Responder responder;<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    protected long size;                          // size of current call<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    protected boolean isError;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    protected TraceInfo tinfo;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    private ByteBuffer cellBlock = null;<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    private User user;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    private InetAddress remoteAddress;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    private RpcCallback callback;<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    private long responseCellSize = 0;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    private long responseBlockSize = 0;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    private boolean retryImmediatelySupported;<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      this.id = id;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      this.service = service;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      this.md = md;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      this.header = header;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      this.param = param;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      this.cellScanner = cellScanner;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      this.connection = connection;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      this.timestamp = System.currentTimeMillis();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      this.response = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      this.responder = responder;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      this.isError = false;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      this.size = size;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      this.tinfo = tinfo;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      this.remoteAddress = remoteAddress;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      this.retryImmediatelySupported =<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          connection == null? null: connection.retryImmediatelySupported;<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>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.342"></a>
+<span class="sourceLineNo">343</span>     * cleanup.<a name="line.343"></a>
+<span class="sourceLineNo">344</span>     */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    void done() {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        // Return buffer to reservoir now we are done with it.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        reservoir.putBuffer(this.cellBlock);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        this.cellBlock = null;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    @Override<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    public String toString() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      return toShortString() + " param: " +<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        " connection: " + connection.toString();<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    protected RequestHeader getHeader() {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      return this.header;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>    /*<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * the payload of a command<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    String toShortString() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      String serviceName = this.connection.service != null ?<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.374"></a>
+<span class="sourceLineNo">375</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.375"></a>
+<span class="sourceLineNo">376</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.376"></a>
+<span class="sourceLineNo">377</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      String serviceName = this.connection.service != null ?<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return serviceName + "." + methodName;<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>    protected synchronized void setSaslTokenResponse(ByteB

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html
index d0040f6..3180076 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html
@@ -61,1780 +61,1781 @@
 <span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.TableName;<a name="line.53"></a>
 <span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.backoff.ServerStatistics;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.htrace.Trace;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>import com.google.common.annotations.VisibleForTesting;<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> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * synchronous caller such as HTable.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * &lt;p&gt;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * to track operation progress.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * &lt;/p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * The class manages internally the retries.<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;/p&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;p&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;/p&gt;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * &lt;p&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * retrieving errors from different threads may be not thread safe.<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * arising from older operations.<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * &lt;/p&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * gets as well.<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;/p&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>@InterfaceAudience.Private<a name="line.98"></a>
-<span class="sourceLineNo">099</span>class AsyncProcess {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * this stage.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   */<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      "hbase.client.start.log.errors.counter";<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  /**<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * The context used to wait for results from one submit call.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   *  */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public static interface AsyncRequestFuture {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    public boolean hasError();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /**<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * Return value from a submit that didn't contain any requests.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    final Object[] result = new Object[0];<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public boolean hasError() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      return null;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>    @Override<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      return null;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    @Override<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    public Object[] getResults() {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      return result;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  };<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * the replica calls are launched. See results for details of this process.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private static class ReplicaResultState {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public ReplicaResultState(int callCount) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      this.callCount = callCount;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    int callCount;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    BatchErrors replicaErrors = null;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    @Override<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    public String toString() {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.htrace.Trace;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>import com.google.common.annotations.VisibleForTesting;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * synchronous caller such as HTable.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * &lt;p&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.68"></a>
+<span class="sourceLineNo">069</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * to track operation progress.<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;/p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * The class manages internally the retries.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;/p&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;p&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;/p&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * retrieving errors from different threads may be not thread safe.<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * arising from older operations.<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;/p&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;p&gt;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * gets as well.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/p&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>@InterfaceAudience.Private<a name="line.99"></a>
+<span class="sourceLineNo">100</span>class AsyncProcess {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * this stage.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      "hbase.client.start.log.errors.counter";<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * The context used to wait for results from one submit call.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   *  */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public static interface AsyncRequestFuture {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public boolean hasError();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Return value from a submit that didn't contain any requests.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final Object[] result = new Object[0];<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    public boolean hasError() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      return false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      return null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>    @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return null;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    public Object[] getResults() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      return result;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  };<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   * the replica calls are launched. See results for details of this process.<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private static class ReplicaResultState {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public ReplicaResultState(int callCount) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      this.callCount = callCount;<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>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    int callCount;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    BatchErrors replicaErrors = null;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    public String toString() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  // TODO: many of the fields should be made private<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  protected final long id;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  protected final ClusterConnection connection;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected final RpcRetryingCallerFactory rpcCallerFactory;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  protected final RpcControllerFactory rpcFactory;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  protected final BatchErrors globalErrors;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  protected final ExecutorService pool;<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  protected final AtomicLong tasksInProgress = new AtomicLong(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  protected final ConcurrentMap&lt;byte[], AtomicInteger&gt; taskCounterPerRegion =<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      new ConcurrentSkipListMap&lt;byte[], AtomicInteger&gt;(Bytes.BYTES_COMPARATOR);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected final ConcurrentMap&lt;ServerName, AtomicInteger&gt; taskCounterPerServer =<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      new ConcurrentHashMap&lt;ServerName, AtomicInteger&gt;();<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  // Start configuration settings.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final int startLogErrorsCnt;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  /**<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * The number of tasks simultaneously executed on the cluster.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  protected final int maxTotalConcurrentTasks;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * The number of tasks we run in parallel on a single region.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * With 1 (the default) , we ensure that the ordering of the queries is respected: we don't start<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * a set of operations on a region before the previous one is done. As well, this limits<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * the pressure we put on the region server.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  protected final int maxConcurrentTasksPerRegion;<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * The number of task simultaneously executed on a single region server.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  protected final int maxConcurrentTasksPerServer;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  protected final long pause;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  protected int numTries;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  protected int serverTrackerTimeout;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected int timeout;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  protected long primaryCallTimeoutMicroseconds;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // End configuration settings.<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  protected static class BatchErrors {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final List&lt;Throwable&gt; throwables = new ArrayList&lt;Throwable&gt;();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final List&lt;Row&gt; actions = new ArrayList&lt;Row&gt;();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    private final List&lt;String&gt; addresses = new ArrayList&lt;String&gt;();<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    public synchronized void add(Throwable ex, Row row, ServerName serverName) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (row == null){<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        throw new IllegalArgumentException("row cannot be null. location=" + serverName);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>      throwables.add(ex);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      actions.add(row);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      addresses.add(serverName != null ? serverName.toString() : "null");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public boolean hasErrors() {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return !throwables.isEmpty();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private synchronized RetriesExhaustedWithDetailsException makeException() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      return new RetriesExhaustedWithDetailsException(<a name="line.245"></a>
-<span class="sourceLineNo">246</span>          new ArrayList&lt;Throwable&gt;(throwables),<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          new ArrayList&lt;Row&gt;(actions), new ArrayList&lt;String&gt;(addresses));<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>    public synchronized void clear() {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      throwables.clear();<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      actions.clear();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      addresses.clear();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public synchronized void merge(BatchErrors other) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      throwables.addAll(other.throwables);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      actions.addAll(other.actions);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      addresses.addAll(other.addresses);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  public AsyncProcess(ClusterConnection hc, Configuration conf, ExecutorService pool,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcRetryingCallerFactory rpcCaller, boolean useGlobalErrors,<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      RpcControllerFactory rpcFactory) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    if (hc == null) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      throw new IllegalArgumentException("HConnection cannot be null.");<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>    this.connection = hc;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    this.pool = pool;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    this.globalErrors = useGlobalErrors ? new BatchErrors() : null;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    this.id = COUNTER.incrementAndGet();<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // how many times we could try in total, one more than retry number<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    this.numTries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER) + 1;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    this.timeout = conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    this.primaryCallTimeoutMicroseconds = conf.getInt(PRIMARY_CALL_TIMEOUT_KEY, 10000);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    this.maxTotalConcurrentTasks = conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    this.maxConcurrentTasksPerServer = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERSERVER_TASKS,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERSERVER_TASKS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.maxConcurrentTasksPerRegion = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERREGION_TASKS,<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERREGION_TASKS);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.startLogErrorsCnt =<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        conf.getInt(START_LOG_ERRORS_AFTER_COUNT_KEY, DEFAULT_START_LOG_ERRORS_AFTER_COUNT);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (this.maxTotalConcurrentTasks &lt;= 0) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throw new IllegalArgumentException("maxTotalConcurrentTasks=" + maxTotalConcurrentTasks);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (this.maxConcurrentTasksPerServer &lt;= 0) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      throw new IllegalArgumentException("maxConcurrentTasksPerServer=" +<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          maxConcurrentTasksPerServer);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    if (this.maxConcurrentTasksPerRegion &lt;= 0) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      throw new IllegalArgumentException("maxConcurrentTasksPerRegion=" +<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          maxConcurrentTasksPerRegion);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Server tracker allows us to do faster, and yet useful (hopefully), retries.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // However, if we are too useful, we might fail very quickly due to retry count limit.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // To avoid this, we are going to cheat for now (see HBASE-7659), and calculate maximum<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    // retry time if normal retries were used. Then we will retry until this time runs out.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // If we keep hitting one server, the net effect will be the incremental backoff, and<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    // essentially the same number of retries as planned. If we have to do faster retries,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // we will do more retries in aggregate, but the user will be none the wiser.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    this.serverTrackerTimeout = 0;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (int i = 0; i &lt; this.numTries; ++i) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      serverTrackerTimeout += ConnectionUtils.getPauseTime(this.pause, i);<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>    this.rpcCallerFactory = rpcCaller;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    this.rpcFactory = rpcFactory;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @return pool if non null, otherwise returns this.pool if non null, otherwise throws<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   *         RuntimeException<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  private ExecutorService getPool(ExecutorService pool) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (pool != null) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      return pool;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    if (this.pool != null) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      return this.pool;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    throw new RuntimeException("Neither AsyncProcess nor request have ExecutorService");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  /**<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * See {@link #submit(ExecutorService, TableName, List, boolean, Batch.Callback, boolean)}.<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public &lt;CResult&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback, boolean needResults)<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      throws InterruptedIOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return submit(null, tableName, rows, atLeastOne, callback, needResults);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  /**<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * Extract from the rows list what we can submit. The rows we can not submit are kept in the<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * list. Does not send requests to replicas (not currently used for anything other<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * than streaming puts anyway).<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   *<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * @param pool ExecutorService to use.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * @param tableName The table for which this request is needed.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * @param callback Batch callback. Only called on success (94 behavior).<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * @param needResults Whether results are needed, or can be discarded.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @param rows - the submitted row. Modified by the method: we remove the rows we took.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * @param atLeastOne true if we should submit at least a subset.<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   */<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  public &lt;CResult&gt; AsyncRequestFuture submit(ExecutorService pool, TableName tableName,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      List&lt;? extends Row&gt; rows, boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      boolean needResults) throws InterruptedIOException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (rows.isEmpty()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return NO_REQS_RESULT;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    List&lt;Action&lt;Row&gt;&gt; retainedActions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    long nonceGroup = ng.getNonceGroup(); // Currently, nonce group is per entire client.<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    // Location errors that happen before we decide what requests to take.<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    List&lt;Exception&gt; locationErrors = null;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    List&lt;Integer&gt; locationErrorRows = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    do {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      // Wait until there is at least one slot for a new task.<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      waitForMaximumCurrentTasks(maxTotalConcurrentTasks - 1);<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>      // Remember the previous decisions about regions or region servers we put in the<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      //  final multi.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      Map&lt;Long, Boolean&gt; regionIncluded = new HashMap&lt;Long, Boolean&gt;();<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      Map&lt;ServerName, Boolean&gt; serverIncluded = new HashMap&lt;ServerName, Boolean&gt;();<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>      int posInList = -1;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      Iterator&lt;? extends Row&gt; it = rows.iterator();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      while (it.hasNext()) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        Row r = it.next();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        HRegionLocation loc;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (r == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            throw new IllegalArgumentException("#" + id + ", row cannot be null");<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          // Make sure we get 0-s replica.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          RegionLocations locs = connection.locateRegion(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>              tableName, r.getRow(), true, true, RegionReplicaUtil.DEFAULT_REPLICA_ID);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (locs == null || locs.isEmpty() || locs.getDefaultRegionLocation() == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            throw new IOException("#" + id + ", no location found, aborting submit for"<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                + " tableName=" + tableName + " rowkey=" + Bytes.toStringBinary(r.getRow()));<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          loc = locs.getDefaultRegionLocation();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        } catch (IOException ex) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          locationErrors = new ArrayList&lt;Exception&gt;();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          locationErrorRows = new ArrayList&lt;Integer&gt;();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error("Failed to get region location ", ex);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          // This action failed before creating ars. Retain it, but do not add to submit list.<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          // We will then add it to ars in an already-failed state.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          retainedActions.add(new Action&lt;Row&gt;(r, ++posInList));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          locationErrors.add(ex);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>          locationErrorRows.add(posInList);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          it.remove();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>          break; // Backward compat: we stop considering actions on location error.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>        if (canTakeOperation(loc, regionIncluded, serverIncluded)) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, ++posInList);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>          setNonce(ng, r, action);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          retainedActions.add(action);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          // TODO: replica-get is not supported on this path<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          byte[] regionName = loc.getRegionInfo().getRegionName();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          addAction(loc.getServerName(), regionName, action, actionsByServer, nonceGroup);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          it.remove();<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>    } while (retainedActions.isEmpty() &amp;&amp; atLeastOne &amp;&amp; (locationErrors == null));<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>    if (retainedActions.isEmpty()) return NO_REQS_RESULT;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return submitMultiActions(tableName, retainedActions, nonceGroup, callback, null, needResults,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      locationErrors, locationErrorRows, actionsByServer, pool);<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>  &lt;CResult&gt; AsyncRequestFuture submitMultiActions(TableName tableName,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      List&lt;Action&lt;Row&gt;&gt; retainedActions, long nonceGroup, Batch.Callback&lt;CResult&gt; callback,<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Object[] results, boolean needResults, List&lt;Exception&gt; locationErrors,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      List&lt;Integer&gt; locationErrorRows, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      ExecutorService pool) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      tableName, retainedActions, nonceGroup, pool, callback, results, needResults);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Add location errors if any<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    if (locationErrors != null) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      for (int i = 0; i &lt; locationErrors.size(); ++i) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        int originalIndex = locationErrorRows.get(i);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        Row row = retainedActions.get(originalIndex).getAction();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        ars.manageError(originalIndex, row,<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          Retry.NO_LOCATION_PROBLEM, locationErrors.get(i), null);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    ars.sendMultiAction(actionsByServer, 1, null, false);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return ars;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Helper that is used when grouping the actions per region server.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   *<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param loc - the destination. Must not be null.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @param action - the action to add to the multiaction<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @param actionsByServer the multiaction per server<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param nonceGroup Nonce group.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private static void addAction(ServerName server, byte[] regionName, Action&lt;Row&gt; action,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer, long nonceGroup) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    MultiAction&lt;Row&gt; multiAction = actionsByServer.get(server);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (multiAction == null) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      multiAction = new MultiAction&lt;Row&gt;();<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      actionsByServer.put(server, multiAction);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (action.hasNonce() &amp;&amp; !multiAction.hasNonceGroup()) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      multiAction.setNonceGroup(nonceGroup);<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>    multiAction.add(regionName, action);<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>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Check if we should send new operations to this region or region server.<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * We're taking into account the past decision; if we have already accepted<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * operation on a given region, we accept all operations for this region.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   *<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param loc; the region and the server name we want to use.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @return true if this region is considered as busy.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  protected boolean canTakeOperation(HRegionLocation loc,<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                                     Map&lt;Long, Boolean&gt; regionsIncluded,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                                     Map&lt;ServerName, Boolean&gt; serversIncluded) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    long regionId = loc.getRegionInfo().getRegionId();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    Boolean regionPrevious = regionsIncluded.get(regionId);<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (regionPrevious != null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // We already know what to do with this region.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      return regionPrevious;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span>    Boolean serverPrevious = serversIncluded.get(loc.getServerName());<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    if (Boolean.FALSE.equals(serverPrevious)) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // It's a new region, on a region server that we have already excluded.<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return false;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    AtomicInteger regionCnt = taskCounterPerRegion.get(loc.getRegionInfo().getRegionName());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (regionCnt != null &amp;&amp; regionCnt.get() &gt;= maxConcurrentTasksPerRegion) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Too many tasks on this region already.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      return false;<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>    if (serverPrevious == null) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      // The region is ok, but we need to decide for this region server.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      int newServers = 0; // number of servers we're going to contact so far<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      for (Map.Entry&lt;ServerName, Boolean&gt; kv : serversIncluded.entrySet()) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (kv.getValue()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          newServers++;<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // Do we have too many total tasks already?<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      boolean ok = (newServers + tasksInProgress.get()) &lt; maxTotalConcurrentTasks;<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      if (ok) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>        // If the total is fine, is it ok for this individual server?<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        AtomicInteger serverCnt = taskCounterPerServer.get(loc.getServerName());<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        ok = (serverCnt == null || serverCnt.get() &lt; maxConcurrentTasksPerServer);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      if (!ok) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        serversIncluded.put(loc.getServerName(), Boolean.FALSE);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        return false;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>      serversIncluded.put(loc.getServerName(), Boolean.TRUE);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    } else {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      assert serverPrevious.equals(Boolean.TRUE);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    regionsIncluded.put(regionId, Boolean.TRUE);<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return true;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * See {@link #submitAll(ExecutorService, TableName, List, Batch.Callback, Object[])}.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   */<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(TableName tableName,<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    return submitAll(null, tableName, rows, callback, results);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
-<span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * Submit immediately the list of rows, whatever the server status. Kept for backward<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * compatibility: it allows to be used with the batch interface that return an array of objects.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   *<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * @param pool ExecutorService to use.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * @param tableName name of the table for which the submission is made.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param rows the list of rows.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param callback the callback.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @param results Optional array to return the results thru; backward compat.<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(ExecutorService pool, TableName tableName,<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    List&lt;Action&lt;Row&gt;&gt; actions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.563"></a>
-<span class="sourceLineNo">564</span><a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // The position will be used by the processBatch to match the object array returned.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    int posInList = -1;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    for (Row r : rows) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      posInList++;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (r instanceof Put) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        Put put = (Put) r;<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        if (put.isEmpty()) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          throw new IllegalArgumentException("No columns to insert for #" + (posInList+1)+ " item");<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, posInList);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      setNonce(ng, r, action);<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      actions.add(action);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        tableName, actions, ng.getNonceGroup(), getPool(pool), callback, results, results != null);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ars.groupAndSendMultiAction(actions, 1);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return ars;<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>  private static void setNonce(NonceGenerator ng, Row r, Action&lt;Row&gt; action) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (!(r instanceof Append) &amp;&amp; !(r instanceof Increment)) return;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    action.setNonce(ng.newNonce()); // Action handles NO_NONCE, so it's ok if ng is disabled.<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span><a name="line.590"></a>
-<span class="sourceLineNo">591</span>  /**<a name="line.591"></a>
-<span class="sourceLineNo">592</span>   * The context, and return value, for a single submit/submitAll call.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * Note on how this class (one AP submit) works. Initially, all requests are split into groups<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * by server; request is sent to each server in parallel; the RPC calls are not async so a<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * thread per server is used. Every time some actions fail, regions/locations might have<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * changed, so we re-group them by server and region again and send these groups in parallel<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * too. The result, in case of retries, is a "tree" of threads, with parent exiting after<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * scheduling children. This is why lots of code doesn't require any synchronization.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  protected class AsyncRequestFutureImpl&lt;CResult&gt; implements AsyncRequestFuture {<a name="line.600"></a>
-<span class="sourceLineNo">601</span><a name="line.601"></a>
-<span class="sourceLineNo">602</span>    /**<a name="line.602"></a>
-<span class="sourceLineNo">603</span>     * Runnable (that can be submitted to thread pool) that waits for when it's time<a name="line.603"></a>
-<span class="sourceLineNo">604</span>     * to issue replica calls, finds region replicas, groups the requests by replica and<a name="line.604"></a>
-<span class="sourceLineNo">605</span>     * issues the calls (on separate threads, via sendMultiAction).<a name="line.605"></a>
-<span class="sourceLineNo">606</span>     * This is done on a separate thread because we don't want to wait on user thread for<a name="line.606"></a>
-<span class="sourceLineNo">607</span>     * our asynchronous call, and usually we have to wait before making replica calls.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>     */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    private final class ReplicaCallIssuingRunnable implements Runnable {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      private final long startTime;<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      private final List&lt;Action&lt;Row&gt;&gt; initialActions;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>      public ReplicaCallIssuingRunnable(List&lt;Action&lt;Row&gt;&gt; initialActions, long startTime) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.initialActions = initialActions;<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        this.startTime = startTime;<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>      @Override<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      public void run() {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        boolean done = false;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        if (primaryCallTimeoutMicroseconds &gt; 0) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>          try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>            done = waitUntilDone(startTime * 1000L + primaryCallTimeoutMicroseconds);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          } catch (InterruptedException ex) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>            LOG.error("Replica thread was interrupted - no replica calls: " + ex.getMessage());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            return;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>          }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        if (done) return; // Done within primary timeout<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        List&lt;Action&lt;Row&gt;&gt; unknownLocActions = new ArrayList&lt;Action&lt;Row&gt;&gt;();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        if (replicaGetIndices == null) {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>          for (int i = 0; i &lt; results.length; ++i) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>            addReplicaActions(i, actionsByServer, unknownLocActions);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          }<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        } else {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>          for (int replicaGetIndice : replicaGetIndices) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>            addReplicaActions(replicaGetIndice, actionsByServer, unknownLocActions);<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>        if (!actionsByServer.isEmpty()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          sendMultiAction(actionsByServer, 1, null, unknownLocActions.isEmpty());<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        }<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        if (!unknownLocActions.isEmpty()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>          actionsByServer = new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          for (Action&lt;Row&gt; action : unknownLocActions) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>            addReplicaActionsAgain(action, actionsByServer);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          // Some actions may have completely failed, they are handled inside addAgain.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>          if (!actionsByServer.isEmpty()) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>            sendMultiAction(actionsByServer, 1, null, true);<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>      }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>      /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>       * Add replica actions to action map by server.<a name="line.658"></a>
-<span class="sourceLineNo">659</span>       * @param index Index of the original action.<a name="line.659"></a>
-<span class="sourceLineNo">660</span>       * @param actionsByServer The map by server to add it to.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>       */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      private void addReplicaActions(int index, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.662"></a>
-<span class="sourceLineNo">663</span>          List&lt;Action&lt;Row&gt;&gt; unknownReplicaActions) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>        if (results[index] != null) return; // opportunistic. Never goes from non-null to null.<a name="line.664"></a>
-<span class="sourceLineNo">665</span>        Action&lt;Row&gt; action = initialActions.get(index);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        RegionLocations loc = findAllLocationsOrFail(action, true);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>        if (loc == null) return;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>        HRegionLocation[] locs = loc.getRegionLocations();<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        if (locs.length == 1) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>          LOG.warn("No replicas found for " + action.getAction());<a name="line.670"></a>
-<span class="sourceLineNo">671</span>          return;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        synchronized (replicaResultLock) {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          // Don't run replica calls if the original has finished. We could do it e.g. if<a name="line.674"></a>
-<span class="sourceLineNo">675</span>          // original has already failed before first replica call (unlikely given retries),<a name="line.675"></a>
-<span class="sourceLineNo">676</span>          // but that would require additional synchronization w.r.t. returning to caller.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          if (results[index] != null) return;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // We set the number of calls here. After that any path must call setResult/setError.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          // True even for replicas that are not found - if we refuse to send we MUST set error.<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          results[index] = new ReplicaResultState(locs.length);<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        for (int i = 1; i &lt; locs.length; ++i) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          Action&lt;Row&gt; replicaAction = new Action&lt;Row&gt;(action, i);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          if (locs[i] != null) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>            addAction(locs[i].getServerName(), locs[i].getRegionInfo().getRegionName(),<a name="line.685"></a>
-<span class="sourceLineNo">686</span>                replicaAction, actionsByServer, nonceGroup);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          } else {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>            unknownReplicaActions.add(replicaAction);<a name="line.688"></a>
-<span class="sourceLineNo">689</span>          }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      }<a name="line.691"></a>
-<span class="sourceLineNo">692</span><a name="line.692"></a>
-<span class="sourceLineNo">693</span>      private void addReplicaActionsAgain(<a name="line.693"></a>
-<span class="sourceLineNo">694</span>          Action&lt;Row&gt; action, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        if (action.getReplicaId() == RegionReplicaUtil.DEFAULT_REPLICA_ID) {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          throw new AssertionError("Cannot have default replica here");<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        HRegionLocation loc = getReplicaLocationOrFail(action);<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        if (loc == null) return;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        addAction(loc.getServerName(), loc.getRegionInfo().getRegionName(),<a name="line.700"></a>
-<span class="sourceLineNo">701</span>            action, actionsByServer, nonceGroup);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>    /**<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     * Runnable (that can be submitted to thread pool) that submits MultiAction to a<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * single server. The server call is synchronous, therefore we do it on a thread pool.<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     */<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    private final class SingleServerRequestRunnable implements Runnable {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      private final MultiAction&lt;Row&gt; multiAction;<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      private final int numAttempt;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      private final ServerName server;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>      private SingleServerRequestRunnable(<a name="line.715"></a>
-<span class="sourceLineNo">716</span>          MultiAction&lt;Row&gt; multiAction, int numAttempt, ServerName server,<a name="line.716"></a>
-<span class="sourceLineNo">717</span>          Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>        this.multiAction = multiAction;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        this.numAttempt = numAttempt;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        this.server = server;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        this.callsInProgress = callsInProgress;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>      @Override<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      public void run() {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        MultiResponse res;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        MultiServerCallable&lt;Row&gt; callable = null;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>        try {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>          callable = createCallable(server, tableName, multiAction);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>          try {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>            RpcRetryingCaller&lt;MultiResponse&gt; caller = createCaller(callable);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>            if (callsInProgress != null) callsInProgress.add(callable);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>            res = caller.callWithoutRetries(callable, timeout);<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span>            if (res == null) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>              // Cancelled<a name="line.736"></a>
-<span class="sourceLineNo">737</span>              return;<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>          } catch (IOException e) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            // The service itself failed . It may be an error coming from the communication<a name="line.741"></a>
-<span class="sourceLineNo">742</span>            //   layer, but, as well, a functional error raised by the server.<a name="line.742"></a>
-<span class="sourceLineNo">743</span>            receiveGlobalFailure(multiAction, server, numAttempt, e);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>            return;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          } catch (Throwable t) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>            // This should not happen. Let's log &amp; retry anyway.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>            LOG.error("#" + id + ", Caught throwable while calling. This is unexpected." +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>                " Retrying. Server is " + server + ", tableName=" + tableName, t);<a name="line.748"></a>
-<span class="sourceLineNo">749</span>            receiveGlobalFailure(multiAction, server, numAttempt, t);<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            return;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>          }<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>          // Normal case: we received an answer from the server, and it's not an exception.<a name="line.753"></a>
-<span class="sourceLineNo">754</span>          receiveMultiAction(multiAction, server, res, numAttempt);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>        } catch (Throwable t) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // Something really bad happened. We are on the send thread that will now die.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          LOG.error("Internal AsyncProcess #" + id + " error for "<a name="line.757"></a>
-<span class="sourceLineNo">758</span>              + tableName + " processing for " + server, t);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          throw new RuntimeException(t);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        } finally {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          decTaskCounters(multiAction.getRegions(), server);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>          if (callsInProgress != null &amp;&amp; callable != null) {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>            callsInProgress.remove(callable);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          }<a name="line.764"></a>
-<span class="sourceLineNo">765</span>        }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    private final Batch.Callback&lt;CResult&gt; callback;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    private final BatchErrors errors;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    private final ConnectionImplementation.ServerErrorTracker errorsByServer;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    private final ExecutorService pool;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.773"></a>
-<span class="sourceLineNo">774</span><a name="line.774"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
index d4351b1..4cacc12 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
@@ -101,7 +101,7 @@
 <br>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.LimitedPrivate.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.LimitedPrivate</a>(<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.LimitedPrivate.html#value()">value</a>={"Coprocesssor","Phoenix"})
 <a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Evolving.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceStability.Evolving</a>
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.161">RpcServer</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.162">RpcServer</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>, <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></pre>
 <div class="block">An RPC server that hosts protobuf described Services.
@@ -154,22 +154,18 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>static class&nbsp;</code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</a></strong></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a></strong></code>
 <div class="block">Reads calls from a connection and queues them for handling.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Listener.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Listener</a></strong></code>
 <div class="block">Listens on the socket.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected class&nbsp;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Responder.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Responder</a></strong></code>&nbsp;</td>
 </tr>
@@ -225,7 +221,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#bindAddress">bindAddress</a></strong></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</a></code></td>
+<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CALL_QUEUE_TOO_BIG_EXCEPTION">CALL_QUEUE_TOO_BIG_EXCEPTION</a></strong></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -724,7 +720,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>public static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.163">LOG</a></pre>
+<pre>public static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.164">LOG</a></pre>
 </li>
 </ul>
 <a name="CALL_QUEUE_TOO_BIG_EXCEPTION">
@@ -733,7 +729,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>CALL_QUEUE_TOO_BIG_EXCEPTION</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.164">CALL_QUEUE_TOO_BIG_EXCEPTION</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.165">CALL_QUEUE_TOO_BIG_EXCEPTION</a></pre>
 </li>
 </ul>
 <a name="authorize">
@@ -742,7 +738,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>authorize</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.167">authorize</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.168">authorize</a></pre>
 </li>
 </ul>
 <a name="isSecurityEnabled">
@@ -751,7 +747,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>isSecurityEnabled</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.168">isSecurityEnabled</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.169">isSecurityEnabled</a></pre>
 </li>
 </ul>
 <a name="CURRENT_VERSION">
@@ -760,7 +756,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>CURRENT_VERSION</h4>
-<pre>public static final&nbsp;byte <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.170">CURRENT_VERSION</a></pre>
+<pre>public static final&nbsp;byte <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.171">CURRENT_VERSION</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.CURRENT_VERSION">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -770,7 +766,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>FALLBACK_TO_INSECURE_CLIENT_AUTH</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.175">FALLBACK_TO_INSECURE_CLIENT_AUTH</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.176">FALLBACK_TO_INSECURE_CLIENT_AUTH</a></pre>
 <div class="block">Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.</div>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.FALLBACK_TO_INSECURE_CLIENT_AUTH">Constant Field Values</a></dd></dl>
 </li>
@@ -781,7 +777,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.181">DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.182">DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER</a></pre>
 <div class="block">How many calls/handler are allowed in the queue.</div>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER">Constant Field Values</a></dd></dl>
 </li>
@@ -792,7 +788,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_MAX_CALLQUEUE_SIZE</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.186">DEFAULT_MAX_CALLQUEUE_SIZE</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.187">DEFAULT_MAX_CALLQUEUE_SIZE</a></pre>
 <div class="block">The maximum size that we can hold in the RPC queue</div>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.DEFAULT_MAX_CALLQUEUE_SIZE">Constant Field Values</a></dd></dl>
 </li>
@@ -803,7 +799,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>ipcUtil</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/IPCUtil.html" title="class in org.apache.hadoop.hbase.ipc">IPCUtil</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.188">ipcUtil</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/IPCUtil.html" title="class in org.apache.hadoop.hbase.ipc">IPCUtil</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.189">ipcUtil</a></pre>
 </li>
 </ul>
 <a name="AUTH_FAILED_FOR">
@@ -812,7 +808,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>AUTH_FAILED_FOR</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.190">AUTH_FAILED_FOR</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.191">AUTH_FAILED_FOR</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.AUTH_FAILED_FOR">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -822,7 +818,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>AUTH_SUCCESSFUL_FOR</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.191">AUTH_SUCCESSFUL_FOR</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.192">AUTH_SUCCESSFUL_FOR</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.AUTH_SUCCESSFUL_FOR">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -832,7 +828,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>AUDITLOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.192">AUDITLOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.193">AUDITLOG</a></pre>
 </li>
 </ul>
 <a name="secretManager">
@@ -841,7 +837,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>secretManager</h4>
-<pre>protected&nbsp;org.apache.hadoop.security.token.SecretManager&lt;org.apache.hadoop.security.token.TokenIdentifier&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.194">secretManager</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.security.token.SecretManager&lt;org.apache.hadoop.security.token.TokenIdentifier&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.195">secretManager</a></pre>
 </li>
 </ul>
 <a name="authManager">
@@ -850,7 +846,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>authManager</h4>
-<pre>protected&nbsp;org.apache.hadoop.security.authorize.ServiceAuthorizationManager <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.195">authManager</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.security.authorize.ServiceAuthorizationManager <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.196">authManager</a></pre>
 </li>
 </ul>
 <a name="CurCall">
@@ -859,7 +855,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>CurCall</h4>
-<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html?is-external=true" title="class or interface in java.lang">ThreadLocal</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.200">CurCall</a></pre>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html?is-external=true" title="class or interface in java.lang">ThreadLocal</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.201">CurCall</a></pre>
 <div class="block">This is set to Call object before Handler invokes an RPC and ybdie
  after the call returns.</div>
 </li>
@@ -870,7 +866,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>MONITORED_RPC</h4>
-<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html?is-external=true" title="class or interface in java.lang">ThreadLocal</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredRPCHandler.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredRPCHandler</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.203">MONITORED_RPC</a></pre>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html?is-external=true" title="class or interface in java.lang">ThreadLocal</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredRPCHandler.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredRPCHandler</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.204">MONITORED_RPC</a></pre>
 <div class="block">Keeps MonitoredRPCHandler per handler thread.</div>
 </li>
 </ul>
@@ -880,7 +876,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>bindAddress</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.206">bindAddress</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.207">bindAddress</a></pre>
 </li>
 </ul>
 <a name="port">
@@ -889,7 +885,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>port</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.207">port</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.208">port</a></pre>
 </li>
 </ul>
 <a name="address">
@@ -898,7 +894,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>address</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.208">address</a></pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.209">address</a></pre>
 </li>
 </ul>
 <a name="readThreads">
@@ -907,7 +903,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>readThreads</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.209">readThreads</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.210">readThreads</a></pre>
 </li>
 </ul>
 <a name="maxIdleTime">
@@ -916,7 +912,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>maxIdleTime</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.210">maxIdleTime</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.211">maxIdleTime</a></pre>
 </li>
 </ul>
 <a name="thresholdIdleConnections">
@@ -925,7 +921,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>thresholdIdleConnections</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.213">thresholdIdleConnections</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.214">thresholdIdleConnections</a></pre>
 </li>
 </ul>
 <a name="maxConnectionsToNuke">
@@ -934,7 +930,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>maxConnectionsToNuke</h4>
-<pre>int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.217">maxConnectionsToNuke</a></pre>
+<pre>int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.218">maxConnectionsToNuke</a></pre>
 </li>
 </ul>
 <a name="metrics">
@@ -943,7 +939,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>metrics</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.221">metrics</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.222">metrics</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -952,7 +948,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>protected final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.223">conf</a></pre>
+<pre>protected final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.224">conf</a></pre>
 </li>
 </ul>
 <a name="maxQueueSize">
@@ -961,7 +957,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>maxQueueSize</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.225">maxQueueSize</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.226">maxQueueSize</a></pre>
 </li>
 </ul>
 <a name="socketSendBufferSize">
@@ -970,7 +966,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>socketSendBufferSize</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.226">socketSendBufferSize</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.227">socketSendBufferSize</a></pre>
 </li>
 </ul>
 <a name="tcpNoDelay">
@@ -979,7 +975,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>tcpNoDelay</h4>
-<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.227">tcpNoDelay</a></pre>
+<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.228">tcpNoDelay</a></pre>
 </li>
 </ul>
 <a name="tcpKeepAlive">
@@ -988,7 +984,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>tcpKeepAlive</h4>
-<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.228">tcpKeepAlive</a></pre>
+<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.229">tcpKeepAlive</a></pre>
 </li>
 </ul>
 <a name="purgeTimeout">
@@ -997,7 +993,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>purgeTimeout</h4>
-<pre>protected final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.229">purgeTimeout</a></pre>
+<pre>protected final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.230">purgeTimeout</a></pre>
 </li>
 </ul>
 <a name="running">
@@ -1006,7 +1002,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>running</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.236">running</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.237">running</a></pre>
 <div class="block">This flag is used to indicate to sub threads when they should go down.  When we call
  <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#start()"><code>start()</code></a>, all threads started will consult this flag on whether they should
  keep going.  It is set to false when <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#stop()"><code>stop()</code></a> is called.</div>
@@ -1018,7 +1014,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>started</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.242">started</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.243">started</a></pre>
 <div class="block">This flag is set to true after all threads are up and 'running' and the server is then opened
  for business by the call to <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#start()"><code>start()</code></a>.</div>
 </li>
@@ -1029,7 +1025,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>callQueueSize</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Counter.html" title="class in org.apache.hadoop.hbase.util">Counter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.247">callQueueSize</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Counter.html" title="class in org.apache.hadoop.hbase.util">Counter</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.248">callQueueSize</a></pre>
 <div class="block">This is a running count of the size of all outstanding calls by size.</div>
 </li>
 </ul>
@@ -1039,7 +1035,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>connectionList</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.249">connectionList</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.250">connectionList</a></pre>
 </li>
 </ul>
 <a name="listener">
@@ -1048,7 +1044,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>listener</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Listener.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Listener</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.253">listener</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Listener.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Listener</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.254">listener</a></pre>
 </li>
 </ul>
 <a name="responder">
@@ -1057,7 +1053,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>responder</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Responder.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Responder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.254">responder</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Responder.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Responder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.255">responder</a></pre>
 </li>
 </ul>
 <a name="authTokenSecretMgr">
@@ -1066,7 +1062,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>authTokenSecretMgr</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/token/AuthenticationTokenSecretManager.html" title="class in org.apache.hadoop.hbase.security.token">AuthenticationTokenSecretManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.255">authTokenSecretMgr</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/token/AuthenticationTokenSecretManager.html" title="class in org.apache.hadoop.hbase.security.token">AuthenticationTokenSecretManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.256">authTokenSecretMgr</a></pre>
 </li>
 </ul>
 <a name="numConnections">
@@ -1075,7 +1071,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>numConnections</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.256">numConnections</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.257">numConnections</a></pre>
 </li>
 </ul>
 <a name="errorHandler">
@@ -1084,7 +1080,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>errorHandler</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.258">errorHandler</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.259">errorHandler</a></pre>
 </li>
 </ul>
 <a name="WARN_RESPONSE_TIME">
@@ -1093,7 +1089,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>WARN_RESPONSE_TIME</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.260">WARN_RESPONSE_TIME</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.261">WARN_RESPONSE_TIME</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.WARN_RESPONSE_TIME">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -1103,7 +1099,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>WARN_RESPONSE_SIZE</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.261">WARN_RESPONSE_SIZE</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.262">WARN_RESPONSE_SIZE</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.WARN_RESPONSE_SIZE">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -1113,7 +1109,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_WARN_RESPONSE_TIME</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.264">DEFAULT_WARN_RESPONSE_TIME</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.265">DEFAULT_WARN_RESPONSE_TIME</a></pre>
 <div class="block">Default value for above params</div>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.DEFAULT_WARN_RESPONSE_TIME">Constant Field Values</a></dd></dl>
 </li>
@@ -1124,7 +1120,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_WARN_RESPONSE_SIZE</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.265">DEFAULT_WARN_RESPONSE_SIZE</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.266">DEFAULT_WARN_RESPONSE_SIZE</a></pre>
 <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.RpcServer.DEFAULT_WARN_RESPONSE_SIZE">Constant Field Values</a></dd></dl>
 </li>
 </ul>
@@ -1134,7 +1130,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>MAPPER</h4>
-<pre>private static final&nbsp;org.codehaus.jackson.map.ObjectMapper <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.267">MAPPER</a></pre>
+<pre>private static final&nbsp;org.codehaus.jackson.map.ObjectMapper <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.268">MAPPER</a></pre>
 </li>
 </ul>
 <a name="warnResponseTime">
@@ -1143,7 +1139,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>warnResponseTime</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.269">warnResponseTime</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.270">warnResponseTime</a></pre>
 </li>
 </ul>
 <a name="warnResponseSize">
@@ -1152,7 +1148,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>warnResponseSize</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.270">warnResponseSize</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.271">warnResponseSize</a></pre>
 </li>
 </ul>
 <a name="server">
@@ -1161,7 +1157,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>server</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.271">server</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.272">server</a></pre>
 </li>
 </ul>
 <a name="services">
@@ -1170,7 +1166,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>services</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.272">services</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.273">services</a></pre>
 </li>
 </ul>
 <a name="scheduler">
@@ -1179,7 +1175,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>scheduler</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.274">scheduler</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.275">scheduler</a></pre>
 </li>
 </ul>
 <a name="userProvider">
@@ -1188,7 +1184,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>userProvider</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.276">userProvider</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.277">userProvider</a></pre>
 </li>
 </ul>
 <a name="reservoir">
@@ -1197,7 +1193,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>reservoir</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/BoundedByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">BoundedByteBufferPool</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.278">reservoir</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/BoundedByteBufferPool.html" title="class in org.apache.hadoop.hbase.io">BoundedByteBufferPool</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.279">reservoir</a></pre>
 </li>
 </ul>
 <a name="allowFallbackToSimpleAuth">
@@ -1206,7 +1202,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>allowFallbackToSimpleAuth</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.280">allowFallbackToSimpleAuth</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.281">allowFallbackToSimpleAuth</a></pre>
 </li>
 </ul>
 <a name="NIO_BUFFER_LIMIT">
@@ -1215,7 +1211,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockListLast">
 <li class="blockList">
 <h4>NIO_BUFFER_LIMIT</h4>
-<pre>private static&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2363">NIO_BUFFER_LIMIT</a></pre>
+<pre>private static&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2368">NIO_BUFFER_LIMIT</a></pre>
 <div class="block">When the read or write buffer size is larger than this limit, i/o will be
  done in chunks of this size. Most RPC requests and responses would be
  be smaller.</div>
@@ -1235,7 +1231,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RpcServer</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.1983">RpcServer</a>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.1988">RpcServer</a>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
          <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
          <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
          <a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;bindAddress,
@@ -1263,7 +1259,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2041">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;newConf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2046">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;newConf)</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html#onConfigurationChange(org.apache.hadoop.conf.Configuration)">ConfigurationObserver</a></code></strong></div>
 <div class="block">This method would be called by the <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf"><code>ConfigurationManager</code></a>
  object when the <code>Configuration</code> object is reloaded from disk.</div>
@@ -1279,7 +1275,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>initReconfigurable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2045">initReconfigurable</a>(org.apache.hadoop.conf.Configuration&nbsp;confToLoad)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2050">initReconfigurable</a>(org.apache.hadoop.conf.Configuration&nbsp;confToLoad)</pre>
 </li>
 </ul>
 <a name="getConnection(java.nio.channels.SocketChannel, long)">
@@ -1288,7 +1284,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getConnection</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2063">getConnection</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SocketChannel.html?is-external=true" title="class or interface in java.nio.channels">SocketChannel</a>&nbsp;channel,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2068">getConnection</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/SocketChannel.html?is-external=true" title="class or interface in java.nio.channels">SocketChannel</a>&nbsp;channel,
                                  long&nbsp;time)</pre>
 <div class="block">Subclasses of HBaseServer can override this to provide their own
  Connection implementations.</div>
@@ -1300,7 +1296,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>setupResponse</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2075">setupResponse</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayOutputStream.html?is-external=true" title="class or interface in java.io">ByteArrayOutputStream</a>&nbsp;response,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2080">setupResponse</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayOutputStream.html?is-external=true" title="class or interface in java.io">ByteArrayOutputStream</a>&nbsp;response,
                  <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Call</a>&nbsp;call,
                  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t,
                  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;error)
@@ -1317,7 +1313,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>closeConnection</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2081">closeConnection</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&nbsp;connection)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2086">closeConnection</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>&nbsp;connection)</pre>
 </li>
 </ul>
 <a name="getConf()">
@@ -1326,7 +1322,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getConf</h4>
-<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2090">getConf</a>()</pre>
+<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2095">getConf</a>()</pre>
 </li>
 </ul>
 <a name="setSocketSendBufSize(int)">
@@ -1335,7 +1331,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>setSocketSendBufSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2098">setSocketSendBufSize</a>(int&nbsp;size)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2103">setSocketSendBufSize</a>(int&nbsp;size)</pre>
 <div class="block">Sets the socket buffer size used for responding to RPCs.</div>
 <dl>
 <dt><strong>Specified by:</strong></dt>
@@ -1349,7 +1345,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>isStarted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2101">isStarted</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2106">isStarted</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#isStarted()">isStarted</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></dd>
@@ -1362,7 +1358,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2107">start</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2112">start</a>()</pre>
 <div class="block">Starts the service.  Must be called before any calls will be handled.</div>
 <dl>
 <dt><strong>Specified by:</strong></dt>
@@ -1376,7 +1372,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>refreshAuthManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2123">refreshAuthManager</a>(org.apache.hadoop.security.authorize.PolicyProvider&nbsp;pp)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2128">refreshAuthManager</a>(org.apache.hadoop.security.authorize.PolicyProvider&nbsp;pp)</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#refreshAuthManager(org.apache.hadoop.security.authorize.PolicyProvider)">RpcServerInterface</a></code></strong></div>
 <div class="block">Refresh authentication manager policy.</div>
 <dl>
@@ -1391,7 +1387,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>createSecretManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/token/AuthenticationTokenSecretManager.html" title="class in org.apache.hadoop.hbase.security.token">AuthenticationTokenSecretManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2129">createSecretManager</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/token/AuthenticationTokenSecretManager.html" title="class in org.apache.hadoop.hbase.security.token">AuthenticationTokenSecretManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2134">createSecretManager</a>()</pre>
 </li>
 </ul>
 <a name="getSecretManager()">
@@ -1400,7 +1396,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getSecretManager</h4>
-<pre>public&nbsp;org.apache.hadoop.security.token.SecretManager&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2141">getSecretManager</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.security.token.SecretManager&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2146">getSecretManager</a>()</pre>
 </li>
 </ul>
 <a name="setSecretManager(org.apache.hadoop.security.token.SecretManager)">
@@ -1409,7 +1405,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>setSecretManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2146">setSecretManager</a>(org.apache.hadoop.security.token.SecretManager&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;secretManager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2151">setSecretManager</a>(org.apache.hadoop.security.token.SecretManager&lt;? extends org.apache.hadoop.security.token.TokenIdentifier&gt;&nbsp;secretManager)</pre>
 </li>
 </ul>
 <a name="call(com.google.protobuf.BlockingService, com.google.protobuf.Descriptors.MethodDescriptor, com.google.protobuf.Message, org.apache.hadoop.hbase.CellScanner, long, org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler)">
@@ -1418,7 +1414,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.protobuf.Message,<a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2156">call</a>(com.google.protobuf.BlockingService&nbsp;service,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.protobuf.Message,<a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2161">call</a>(com.google.protobuf.BlockingService&nbsp;service,
                                                  com.google.protobuf.Descriptors.MethodDescriptor&nbsp;md,
                                                  com.google.protobuf.Message&nbsp;param,
                                                  <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cellScanner,
@@ -1441,7 +1437,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>logResponse</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2230">logResponse</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;params,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2235">logResponse</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;params,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;methodName,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;call,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tag,
@@ -1465,7 +1461,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2273">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2278">stop</a>()</pre>
 <div class="block">Stops the service.  No new calls will be handled after this is called.</div>
 <dl>
 <dt><strong>Specified by:</strong></dt>
@@ -1479,7 +1475,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>join</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2293">join</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2298">join</a>()
           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Wait for the server to be stopped.
  Does not wait for all subthreads to finish.
@@ -1497,7 +1493,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getListenerAddress</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2306">getListenerAddress</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2311">getListenerAddress</a>()</pre>
 <div class="block">Return the socket (ip+port) on which the RPC server is listening to. May return null if
  the listener channel is closed.</div>
 <dl>
@@ -1513,7 +1509,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>setErrorHandler</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2318">setErrorHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a>&nbsp;handler)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2323">setErrorHandler</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a>&nbsp;handler)</pre>
 <div class="block">Set the handler for calling out of RPC for error conditions.</div>
 <dl>
 <dt><strong>Specified by:</strong></dt>
@@ -1527,7 +1523,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getErrorHandler</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2323">getErrorHandler</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2328">getErrorHandler</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#getErrorHandler()">getErrorHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></dd>
@@ -1540,7 +1536,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2331">getMetrics</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2336">getMetrics</a>()</pre>
 <div class="block">Returns the metrics instance for reporting RPC call statistics</div>
 <dl>
 <dt><strong>Specified by:</strong></dt>
@@ -1554,7 +1550,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>addCallSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2336">addCallSize</a>(long&nbsp;diff)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2341">addCallSize</a>(long&nbsp;diff)</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#addCallSize(long)">RpcServerInterface</a></code></strong></div>
 <div class="block">Add/subtract from the current size of all outstanding calls.  Called on setup of a call to add
  call total size and then again at end of a call to remove the call size.</div>
@@ -1570,7 +1566,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>authorize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2349">authorize</a>(org.apache.hadoop.security.UserGroupInformation&nbsp;user,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2354">authorize</a>(org.apache.hadoop.security.UserGroupInformation&nbsp;user,
              org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader&nbsp;connection,
              <a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;addr)
                throws org.apache.hadoop.security.authorize.AuthorizationException</pre>
@@ -1586,7 +1582,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>channelWrite</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2379">channelWrite</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/GatheringByteChannel.html?is-external=true" title="class or interface in java.nio.channels">GatheringByteChannel</a>&nbsp;channel,
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2384">channelWrite</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/GatheringByteChannel.html?is-external=true" title="class or interface in java.nio.channels">GatheringByteChannel</a>&nbsp;channel,
                 <a href="../../../../../org/apache/hadoop/hbase/ipc/BufferChain.html" title="class in org.apache.hadoop.hbase.ipc">BufferChain</a>&nbsp;bufferChain)
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This is a wrapper around <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true#write(java.nio.ByteBuffer)" title="class or interface in java.nio.channels"><code>WritableByteChannel.write(java.nio.ByteBuffer)</code></a>.
@@ -1607,7 +1603,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>channelRead</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2398">channelRead</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2403">channelRead</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;channel,
               <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer)
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This is a wrapper around <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true#read(java.nio.ByteBuffer)" title="class or interface in java.nio.channels"><code>ReadableByteChannel.read(java.nio.ByteBuffer)</code></a>.
@@ -1626,7 +1622,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>channelIO</h4>
-<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2422">channelIO</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;readCh,
+<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2427">channelIO</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;readCh,
             <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">WritableByteChannel</a>&nbsp;writeCh,
             <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1646,7 +1642,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentCall</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2456">getCurrentCall</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2461">getCurrentCall</a>()</pre>
 <div class="block">Needed for features such as delayed calls.  We need to be able to store the current call
  so that we can complete it later or ask questions of what is supported by the current ongoing
  call.</div>
@@ -1659,7 +1655,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>isInRpcCallContext</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2460">isInRpcCallContext</a>()</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2465">isInRpcCallContext</a>()</pre>
 </li>
 </ul>
 <a name="getRequestUser()">
@@ -1668,7 +1664,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestUser</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2469">getRequestUser</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2474">getRequestUser</a>()</pre>
 <div class="block">Returns the user credentials associated with the current RPC request or
  <code>null</code> if no credentials were provided.</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>A User</dd></dl>
@@ -1680,7 +1676,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestUserName</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2478">getRequestUserName</a>()</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2483">getRequestUserName</a>()</pre>
 <div class="block">Returns the username for any user associated with the current RPC
  request or <code>null</code> if no user is set.</div>
 </li>
@@ -1691,7 +1687,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteAddress</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2486">getRemoteAddress</a>()</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2491">getRemoteAddress</a>()</pre>
 <dl><dt><span class="strong">Returns:</span></dt><dd>Address of remote client if a request is ongoing, else null</dd></dl>
 </li>
 </ul>
@@ -1701,7 +1697,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getServiceAndInterface</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2496">getServiceAndInterface</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2501">getServiceAndInterface</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
                                                            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName)</pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>serviceName</code> - Some arbitrary string that represents a 'service'.</dd><dd><code>services</code> - Available service instances</dd>
 <dt><span class="strong">Returns:</span></dt><dd>Matching BlockingServiceAndInterface pair</dd></dl>
@@ -1713,7 +1709,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getServiceInterface</h4>
-<pre>static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2511">getServiceInterface</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
+<pre>static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2516">getServiceInterface</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
                            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName)</pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>serviceName</code> - Some arbitrary string that represents a 'service'.</dd><dd><code>services</code> - Available services and their service interfaces.</dd>
 <dt><span class="strong">Returns:</span></dt><dd>Service interface class for <code>serviceName</code></dd></dl>
@@ -1725,7 +1721,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getService</h4>
-<pre>static&nbsp;com.google.protobuf.BlockingService&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2524">getService</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
+<pre>static&nbsp;com.google.protobuf.BlockingService&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2529">getService</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;services,
                                              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName)</pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>serviceName</code> - Some arbitrary string that represents a 'service'.</dd><dd><code>services</code> - Available services and their service interfaces.</dd>
 <dt><span class="strong">Returns:</span></dt><dd>BlockingService that goes with the passed <code>serviceName</code></dd></dl>
@@ -1737,7 +1733,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getStatus</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredRPCHandler.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredRPCHandler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2532">getStatus</a>()</pre>
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredRPCHandler.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredRPCHandler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2537">getStatus</a>()</pre>
 </li>
 </ul>
 <a name="getRemoteIp()">
@@ -1746,7 +1742,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteIp</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2548">getRemoteIp</a>()</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2553">getRemoteIp</a>()</pre>
 <div class="block">Returns the remote side ip address when invoked inside an RPC
   Returns null incase of an error.</div>
 <dl><dt><span class="strong">Returns:</span></dt><dd>InetAddress</dd></dl>
@@ -1758,7 +1754,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockList">
 <li class="blockList">
 <h4>bind</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2567">bind</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html?is-external=true" title="class or interface in java.net">ServerSocket</a>&nbsp;socket,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2572">bind</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html?is-external=true" title="class or interface in java.net">ServerSocket</a>&nbsp;socket,
         <a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;address,
         int&nbsp;backlog)
                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1777,7 +1773,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getScheduler</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2589">getScheduler</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.2594">getScheduler</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html#getScheduler()">getScheduler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html b/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
index 20cb56a..d513b63 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
@@ -265,7 +265,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)</code>
 <div class="block">Dispatches an RPC request asynchronously.</div>
 </td>
@@ -577,8 +577,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>dispatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.193">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)
-              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.193">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)
+                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">RpcScheduler</a></code></strong></div>
 <div class="block">Dispatches an RPC request asynchronously. An implementation is free to choose to process the
  request immediately or delay it for later processing.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/class-use/CallRunner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/class-use/CallRunner.html b/devapidocs/org/apache/hadoop/hbase/ipc/class-use/CallRunner.html
index c811b64..f22908f 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/class-use/CallRunner.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/class-use/CallRunner.html
@@ -142,31 +142,31 @@
               <a href="../../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;b)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="strong">SimpleRpcScheduler.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="strong">FifoRpcScheduler.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;task)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>abstract void</code></td>
+<td class="colFirst"><code>abstract boolean</code></td>
 <td class="colLast"><span class="strong">RpcExecutor.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ipc/RpcExecutor.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)</code>
 <div class="block">Add the request to the executor queue</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="strong">RWQueueRpcExecutor.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>abstract void</code></td>
+<td class="colFirst"><code>abstract boolean</code></td>
 <td class="colLast"><span class="strong">RpcScheduler.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;task)</code>
 <div class="block">Dispatches an RPC request asynchronously.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="strong">BalancedQueueRpcExecutor.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)</code>&nbsp;</td>
 </tr>
 </tbody>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html b/testdevapidocs/org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html
new file mode 100644
index 0000000..9302351
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestClientExceptionsUtil (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="TestClientExceptionsUtil (Apache HBase 2.0.0-SNAPSHOT Test API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/TestClientExceptionsUtil.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>Prev Class</li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html" target="_top">Frames</a></li>
+<li><a href="TestClientExceptionsUtil.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.exceptions</div>
+<h2 title="Class TestClientExceptionsUtil" class="title">Class TestClientExceptionsUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/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.exceptions.TestClientExceptionsUtil</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/exceptions/TestClientExceptionsUtil.html#line.29">TestClientExceptionsUtil</a>
+extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" 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><strong><a href="../../../../../org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html#TestClientExceptionsUtil()">TestClientExceptionsUtil</a></strong>()</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</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>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html#testFindException()">testFindException</a></strong>()</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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestClientExceptionsUtil()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestClientExceptionsUtil</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html#line.29">TestClientExceptionsUtil</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="testFindException()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testFindException</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html#line.32">testFindException</a>()
+                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/TestClientExceptionsUtil.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>Prev Class</li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html" target="_top">Frames</a></li>
+<li><a href="TestClientExceptionsUtil.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2016 <a href="http://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/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/exceptions/class-use/TestClientExceptionsUtil.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/exceptions/class-use/TestClientExceptionsUtil.html b/testdevapidocs/org/apache/hadoop/hbase/exceptions/class-use/TestClientExceptionsUtil.html
new file mode 100644
index 0000000..568639a
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/exceptions/class-use/TestClientExceptionsUtil.html
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.exceptions.TestClientExceptionsUtil (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.apache.hadoop.hbase.exceptions.TestClientExceptionsUtil (Apache HBase 2.0.0-SNAPSHOT Test API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/exceptions/TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">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/exceptions/class-use/TestClientExceptionsUtil.html" target="_top">Frames</a></li>
+<li><a href="TestClientExceptionsUtil.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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.exceptions.TestClientExceptionsUtil" class="title">Uses of Class<br>org.apache.hadoop.hbase.exceptions.TestClientExceptionsUtil</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.exceptions.TestClientExceptionsUtil</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/exceptions/TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">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/exceptions/class-use/TestClientExceptionsUtil.html" target="_top">Frames</a></li>
+<li><a href="TestClientExceptionsUtil.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html
new file mode 100644
index 0000000..da1d51b
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-frame.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.hadoop.hbase.exceptions (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html" target="classFrame">org.apache.hadoop.hbase.exceptions</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions" target="classFrame">TestClientExceptionsUtil</a></li>
+</ul>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html
new file mode 100644
index 0000000..41abcef
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-summary.html
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.hadoop.hbase.exceptions (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.apache.hadoop.hbase.exceptions (Apache HBase 2.0.0-SNAPSHOT Test API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.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/errorhandling/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/executor/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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">
+<h1 title="Package" class="title">Package&nbsp;org.apache.hadoop.hbase.exceptions</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions">TestClientExceptionsUtil</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.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/errorhandling/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/executor/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html
new file mode 100644
index 0000000..e08af22
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-tree.html
@@ -0,0 +1,128 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.hadoop.hbase.exceptions Class Hierarchy (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.apache.hadoop.hbase.exceptions Class Hierarchy (Apache HBase 2.0.0-SNAPSHOT Test API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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/errorhandling/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/executor/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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">
+<h1 class="title">Hierarchy For Package org.apache.hadoop.hbase.exceptions</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="strong">Object</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.exceptions.<a href="../../../../../org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">TestClientExceptionsUtil</span></a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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/errorhandling/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/executor/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-use.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-use.html b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-use.html
new file mode 100644
index 0000000..afe5153
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/exceptions/package-use.html
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.hadoop.hbase.exceptions (Apache HBase 2.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Package org.apache.hadoop.hbase.exceptions (Apache HBase 2.0.0-SNAPSHOT Test API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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</li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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">
+<h1 title="Uses of Package org.apache.hadoop.hbase.exceptions" class="title">Uses of Package<br>org.apache.hadoop.hbase.exceptions</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.hadoop.hbase.exceptions</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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</li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/exceptions/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/executor/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/executor/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/executor/package-summary.html
index a68d7dc..39ce9fc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/executor/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/executor/package-summary.html
@@ -35,7 +35,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/errorhandling/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html">Prev Package</a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/filter/package-summary.html">Next Package</a></li>
 </ul>
 <ul class="navList">
@@ -106,7 +106,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/errorhandling/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html">Prev Package</a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/filter/package-summary.html">Next Package</a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/executor/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/executor/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/executor/package-tree.html
index 68f26ae..9cdaade 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -35,7 +35,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/errorhandling/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-tree.html">Prev</a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/filter/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">
@@ -102,7 +102,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/errorhandling/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-tree.html">Prev</a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/filter/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/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 e4cce93..270ccc4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -156,9 +156,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="strong">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="strong">TagUsage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestHFileBlockCompatibility.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="strong">TestHFileBlockCompatibility.Writer.State</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="strong">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="strong">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/ipc/AbstractTestIPC.TestRpcServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/ipc/AbstractTestIPC.TestRpcServer.html b/testdevapidocs/org/apache/hadoop/hbase/ipc/AbstractTestIPC.TestRpcServer.html
index 6cae2b7..3eeae09 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/ipc/AbstractTestIPC.TestRpcServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/ipc/AbstractTestIPC.TestRpcServer.html
@@ -129,7 +129,7 @@ extends org.apache.hadoop.hbase.ipc.RpcServer</pre>
 <!--   -->
 </a>
 <h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.ipc.RpcServer</h3>
-<code>org.apache.hadoop.hbase.ipc.RpcServer.BlockingServiceAndInterface, org.apache.hadoop.hbase.ipc.RpcServer.Call, org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException, org.apache.hadoop.hbase.ipc.RpcServer.Connection, org.apache.hadoop.hbase.ipc.RpcServer.Responder</code></li>
+<code>org.apache.hadoop.hbase.ipc.RpcServer.BlockingServiceAndInterface, org.apache.hadoop.hbase.ipc.RpcServer.Call, org.apache.hadoop.hbase.ipc.RpcServer.Connection, org.apache.hadoop.hbase.ipc.RpcServer.Responder</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/ipc/AbstractTestIPC.TestRpcServer1.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/ipc/AbstractTestIPC.TestRpcServer1.html b/testdevapidocs/org/apache/hadoop/hbase/ipc/AbstractTestIPC.TestRpcServer1.html
index 977ac68..da3a869 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/ipc/AbstractTestIPC.TestRpcServer1.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/ipc/AbstractTestIPC.TestRpcServer1.html
@@ -128,7 +128,7 @@ extends org.apache.hadoop.hbase.ipc.RpcServer</pre>
 <!--   -->
 </a>
 <h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.ipc.RpcServer</h3>
-<code>org.apache.hadoop.hbase.ipc.RpcServer.BlockingServiceAndInterface, org.apache.hadoop.hbase.ipc.RpcServer.Call, org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException, org.apache.hadoop.hbase.ipc.RpcServer.Connection, org.apache.hadoop.hbase.ipc.RpcServer.Responder</code></li>
+<code>org.apache.hadoop.hbase.ipc.RpcServer.BlockingServiceAndInterface, org.apache.hadoop.hbase.ipc.RpcServer.Call, org.apache.hadoop.hbase.ipc.RpcServer.Connection, org.apache.hadoop.hbase.ipc.RpcServer.Responder</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.TestRpcServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.TestRpcServer.html b/testdevapidocs/org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.TestRpcServer.html
index 4c2bb13..fe5f0bf 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.TestRpcServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.TestRpcServer.html
@@ -127,7 +127,7 @@ extends org.apache.hadoop.hbase.ipc.RpcServer</pre>
 <!--   -->
 </a>
 <h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.ipc.RpcServer</h3>
-<code>org.apache.hadoop.hbase.ipc.RpcServer.BlockingServiceAndInterface, org.apache.hadoop.hbase.ipc.RpcServer.Call, org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException, org.apache.hadoop.hbase.ipc.RpcServer.Connection, org.apache.hadoop.hbase.ipc.RpcServer.Responder</code></li>
+<code>org.apache.hadoop.hbase.ipc.RpcServer.BlockingServiceAndInterface, org.apache.hadoop.hbase.ipc.RpcServer.Call, org.apache.hadoop.hbase.ipc.RpcServer.Connection, org.apache.hadoop.hbase.ipc.RpcServer.Responder</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/ipc/TestRpcHandlerException.TestRpcServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/ipc/TestRpcHandlerException.TestRpcServer.html b/testdevapidocs/org/apache/hadoop/hbase/ipc/TestRpcHandlerException.TestRpcServer.html
index bb7df93..25263da 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/ipc/TestRpcHandlerException.TestRpcServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/ipc/TestRpcHandlerException.TestRpcServer.html
@@ -129,7 +129,7 @@ extends org.apache.hadoop.hbase.ipc.RpcServer</pre>
 <!--   -->
 </a>
 <h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.ipc.RpcServer</h3>
-<code>org.apache.hadoop.hbase.ipc.RpcServer.BlockingServiceAndInterface, org.apache.hadoop.hbase.ipc.RpcServer.Call, org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException, org.apache.hadoop.hbase.ipc.RpcServer.Connection, org.apache.hadoop.hbase.ipc.RpcServer.Responder</code></li>
+<code>org.apache.hadoop.hbase.ipc.RpcServer.BlockingServiceAndInterface, org.apache.hadoop.hbase.ipc.RpcServer.Call, org.apache.hadoop.hbase.ipc.RpcServer.Connection, org.apache.hadoop.hbase.ipc.RpcServer.Responder</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/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 d25c357..2a7102a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -505,15 +505,15 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="strong">PerformanceEvaluation.Counter</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="strong">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="strong">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="strong">ResourceChecker.Phase</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="strong">RESTApiClusterManager.RoleCommand</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="strong">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="strong">IntegrationTestRegionReplicaPerf.Stat</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="strong">RESTApiClusterManager.RoleCommand</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="strong">RESTApiClusterManager.Service</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="strong">PerformanceEvaluation.Counter</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="strong">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="strong">ScanPerformanceEvaluation.ScanCounter</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="strong">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="strong">ClusterManager.ServiceType</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/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 fae4c42..1b26029 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -541,9 +541,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">TestAtomicOperation.TestStep</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">TestCacheOnWriteInSchema.CacheOnWriteType</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="strong">DataBlockEncodingTool.Manipulation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="strong">TestAtomicOperation.TestStep</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/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 a28606a..cd0e6c5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -234,9 +234,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="strong">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="strong">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="strong">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="strong">IntegrationTestLoadAndVerify.Counters</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/overview-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-frame.html b/testdevapidocs/overview-frame.html
index e7c46af..9be3ac6 100644
--- a/testdevapidocs/overview-frame.html
+++ b/testdevapidocs/overview-frame.html
@@ -38,6 +38,7 @@
 <li><a href="org/apache/hadoop/hbase/coprocessor/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.coprocessor</a></li>
 <li><a href="org/apache/hadoop/hbase/coprocessor/example/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.coprocessor.example</a></li>
 <li><a href="org/apache/hadoop/hbase/errorhandling/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.errorhandling</a></li>
+<li><a href="org/apache/hadoop/hbase/exceptions/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.exceptions</a></li>
 <li><a href="org/apache/hadoop/hbase/executor/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.executor</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.filter</a></li>
 <li><a href="org/apache/hadoop/hbase/fs/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.fs</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/overview-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-summary.html b/testdevapidocs/overview-summary.html
index 1115bc1..024418f 100644
--- a/testdevapidocs/overview-summary.html
+++ b/testdevapidocs/overview-summary.html
@@ -181,286 +181,290 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/executor/package-summary.html">org.apache.hadoop.hbase.executor</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/exceptions/package-summary.html">org.apache.hadoop.hbase.exceptions</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/filter/package-summary.html">org.apache.hadoop.hbase.filter</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/executor/package-summary.html">org.apache.hadoop.hbase.executor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/fs/package-summary.html">org.apache.hadoop.hbase.fs</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/filter/package-summary.html">org.apache.hadoop.hbase.filter</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/package-summary.html">org.apache.hadoop.hbase.http</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/fs/package-summary.html">org.apache.hadoop.hbase.fs</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/conf/package-summary.html">org.apache.hadoop.hbase.http.conf</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/package-summary.html">org.apache.hadoop.hbase.http</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/jmx/package-summary.html">org.apache.hadoop.hbase.http.jmx</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/conf/package-summary.html">org.apache.hadoop.hbase.http.conf</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/lib/package-summary.html">org.apache.hadoop.hbase.http.lib</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/jmx/package-summary.html">org.apache.hadoop.hbase.http.jmx</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/log/package-summary.html">org.apache.hadoop.hbase.http.log</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/lib/package-summary.html">org.apache.hadoop.hbase.http.lib</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/resource/package-summary.html">org.apache.hadoop.hbase.http.resource</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/log/package-summary.html">org.apache.hadoop.hbase.http.log</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/http/ssl/package-summary.html">org.apache.hadoop.hbase.http.ssl</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/resource/package-summary.html">org.apache.hadoop.hbase.http.resource</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/package-summary.html">org.apache.hadoop.hbase.io</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/http/ssl/package-summary.html">org.apache.hadoop.hbase.http.ssl</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/crypto/package-summary.html">org.apache.hadoop.hbase.io.crypto</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/package-summary.html">org.apache.hadoop.hbase.io</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/crypto/aes/package-summary.html">org.apache.hadoop.hbase.io.crypto.aes</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/crypto/package-summary.html">org.apache.hadoop.hbase.io.crypto</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/encoding/package-summary.html">org.apache.hadoop.hbase.io.encoding</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/crypto/aes/package-summary.html">org.apache.hadoop.hbase.io.crypto.aes</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/encoding/package-summary.html">org.apache.hadoop.hbase.io.encoding</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/hfile/bucket/package-summary.html">org.apache.hadoop.hbase.io.hfile.bucket</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/io/util/package-summary.html">org.apache.hadoop.hbase.io.util</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/hfile/bucket/package-summary.html">org.apache.hadoop.hbase.io.hfile.bucket</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/io/util/package-summary.html">org.apache.hadoop.hbase.io.util</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mapred/package-summary.html">org.apache.hadoop.hbase.mapred</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mapreduce/package-summary.html">org.apache.hadoop.hbase.mapreduce</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mapred/package-summary.html">org.apache.hadoop.hbase.mapred</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/master/package-summary.html">org.apache.hadoop.hbase.master</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mapreduce/package-summary.html">org.apache.hadoop.hbase.mapreduce</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/master/balancer/package-summary.html">org.apache.hadoop.hbase.master.balancer</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/master/package-summary.html">org.apache.hadoop.hbase.master</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/master/cleaner/package-summary.html">org.apache.hadoop.hbase.master.cleaner</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/master/balancer/package-summary.html">org.apache.hadoop.hbase.master.balancer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/master/handler/package-summary.html">org.apache.hadoop.hbase.master.handler</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/master/cleaner/package-summary.html">org.apache.hadoop.hbase.master.cleaner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/master/normalizer/package-summary.html">org.apache.hadoop.hbase.master.normalizer</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/master/handler/package-summary.html">org.apache.hadoop.hbase.master.handler</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/master/procedure/package-summary.html">org.apache.hadoop.hbase.master.procedure</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/master/normalizer/package-summary.html">org.apache.hadoop.hbase.master.normalizer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/master/snapshot/package-summary.html">org.apache.hadoop.hbase.master.snapshot</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/master/procedure/package-summary.html">org.apache.hadoop.hbase.master.procedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/metrics/package-summary.html">org.apache.hadoop.hbase.metrics</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/master/snapshot/package-summary.html">org.apache.hadoop.hbase.master.snapshot</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/metrics/package-summary.html">org.apache.hadoop.hbase.metrics</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/compactions/package-summary.html">org.apache.hadoop.hbase.mob.compactions</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/mapreduce/package-summary.html">org.apache.hadoop.hbase.mob.mapreduce</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/compactions/package-summary.html">org.apache.hadoop.hbase.mob.compactions</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/monitoring/package-summary.html">org.apache.hadoop.hbase.monitoring</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mob/mapreduce/package-summary.html">org.apache.hadoop.hbase.mob.mapreduce</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/mttr/package-summary.html">org.apache.hadoop.hbase.mttr</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/monitoring/package-summary.html">org.apache.hadoop.hbase.monitoring</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/namespace/package-summary.html">org.apache.hadoop.hbase.namespace</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/mttr/package-summary.html">org.apache.hadoop.hbase.mttr</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/nio/package-summary.html">org.apache.hadoop.hbase.nio</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/namespace/package-summary.html">org.apache.hadoop.hbase.namespace</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/procedure/package-summary.html">org.apache.hadoop.hbase.procedure</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/nio/package-summary.html">org.apache.hadoop.hbase.nio</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/procedure/package-summary.html">org.apache.hadoop.hbase.procedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/procedure2/store/package-summary.html">org.apache.hadoop.hbase.procedure2.store</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/procedure2/package-summary.html">org.apache.hadoop.hbase.procedure2</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/procedure2/store/wal/package-summary.html">org.apache.hadoop.hbase.procedure2.store.wal</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/procedure2/store/package-summary.html">org.apache.hadoop.hbase.procedure2.store</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/procedure2/util/package-summary.html">org.apache.hadoop.hbase.procedure2.util</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/procedure2/store/wal/package-summary.html">org.apache.hadoop.hbase.procedure2.store.wal</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/procedure2/util/package-summary.html">org.apache.hadoop.hbase.procedure2.util</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/regionserver/compactions/package-summary.html">org.apache.hadoop.hbase.regionserver.compactions</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/regionserver/wal/package-summary.html">org.apache.hadoop.hbase.regionserver.wal</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/regionserver/compactions/package-summary.html">org.apache.hadoop.hbase.regionserver.compactions</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/regionserver/wal/package-summary.html">org.apache.hadoop.hbase.regionserver.wal</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/replication/multiwal/package-summary.html">org.apache.hadoop.hbase.replication.multiwal</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/replication/regionserver/package-summary.html">org.apache.hadoop.hbase.replication.regionserver</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/replication/multiwal/package-summary.html">org.apache.hadoop.hbase.replication.multiwal</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/rest/package-summary.html">org.apache.hadoop.hbase.rest</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/replication/regionserver/package-summary.html">org.apache.hadoop.hbase.replication.regionserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/rest/client/package-summary.html">org.apache.hadoop.hbase.rest.client</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/rest/package-summary.html">org.apache.hadoop.hbase.rest</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/rest/model/package-summary.html">org.apache.hadoop.hbase.rest.model</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/rest/client/package-summary.html">org.apache.hadoop.hbase.rest.client</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/security/package-summary.html">org.apache.hadoop.hbase.security</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/rest/model/package-summary.html">org.apache.hadoop.hbase.rest.model</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/security/access/package-summary.html">org.apache.hadoop.hbase.security.access</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/security/package-summary.html">org.apache.hadoop.hbase.security</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/security/token/package-summary.html">org.apache.hadoop.hbase.security.token</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/security/access/package-summary.html">org.apache.hadoop.hbase.security.access</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/security/visibility/package-summary.html">org.apache.hadoop.hbase.security.visibility</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/security/token/package-summary.html">org.apache.hadoop.hbase.security.token</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/snapshot/package-summary.html">org.apache.hadoop.hbase.snapshot</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/security/visibility/package-summary.html">org.apache.hadoop.hbase.security.visibility</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/test/package-summary.html">org.apache.hadoop.hbase.test</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/snapshot/package-summary.html">org.apache.hadoop.hbase.snapshot</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/testclassification/package-summary.html">org.apache.hadoop.hbase.testclassification</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/test/package-summary.html">org.apache.hadoop.hbase.test</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/thrift/package-summary.html">org.apache.hadoop.hbase.thrift</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/testclassification/package-summary.html">org.apache.hadoop.hbase.testclassification</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/thrift2/package-summary.html">org.apache.hadoop.hbase.thrift2</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/thrift/package-summary.html">org.apache.hadoop.hbase.thrift</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/trace/package-summary.html">org.apache.hadoop.hbase.trace</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/thrift2/package-summary.html">org.apache.hadoop.hbase.thrift2</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/types/package-summary.html">org.apache.hadoop.hbase.types</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/trace/package-summary.html">org.apache.hadoop.hbase.trace</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/types/package-summary.html">org.apache.hadoop.hbase.types</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/bytes/package-summary.html">org.apache.hadoop.hbase.util.bytes</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/comparator/package-summary.html">org.apache.hadoop.hbase.util.comparator</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/bytes/package-summary.html">org.apache.hadoop.hbase.util.bytes</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/hbck/package-summary.html">org.apache.hadoop.hbase.util.hbck</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/comparator/package-summary.html">org.apache.hadoop.hbase.util.comparator</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/number/package-summary.html">org.apache.hadoop.hbase.util.number</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/hbck/package-summary.html">org.apache.hadoop.hbase.util.hbck</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/test/package-summary.html">org.apache.hadoop.hbase.util.test</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/number/package-summary.html">org.apache.hadoop.hbase.util.number</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/util/vint/package-summary.html">org.apache.hadoop.hbase.util.vint</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/test/package-summary.html">org.apache.hadoop.hbase.util.test</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/wal/package-summary.html">org.apache.hadoop.hbase.wal</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/util/vint/package-summary.html">org.apache.hadoop.hbase.util.vint</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/wal/package-summary.html">org.apache.hadoop.hbase.wal</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="org/apache/hadoop/hbase/zookeeper/lock/package-summary.html">org.apache.hadoop.hbase.zookeeper.lock</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index f105268..e7f402e 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -92,6 +92,7 @@
 <li><a href="org/apache/hadoop/hbase/coprocessor/package-tree.html">org.apache.hadoop.hbase.coprocessor</a>, </li>
 <li><a href="org/apache/hadoop/hbase/coprocessor/example/package-tree.html">org.apache.hadoop.hbase.coprocessor.example</a>, </li>
 <li><a href="org/apache/hadoop/hbase/errorhandling/package-tree.html">org.apache.hadoop.hbase.errorhandling</a>, </li>
+<li><a href="org/apache/hadoop/hbase/exceptions/package-tree.html">org.apache.hadoop.hbase.exceptions</a>, </li>
 <li><a href="org/apache/hadoop/hbase/executor/package-tree.html">org.apache.hadoop.hbase.executor</a>, </li>
 <li><a href="org/apache/hadoop/hbase/filter/package-tree.html">org.apache.hadoop.hbase.filter</a>, </li>
 <li><a href="org/apache/hadoop/hbase/fs/package-tree.html">org.apache.hadoop.hbase.fs</a>, </li>
@@ -1894,6 +1895,7 @@
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestClassFinder.FileAndPath.html" title="class in org.apache.hadoop.hbase"><span class="strong">TestClassFinder.FileAndPath</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/TestClassLoading.html" title="class in org.apache.hadoop.hbase.coprocessor"><span class="strong">TestClassLoading</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="strong">TestCleanerChore</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.exceptions.<a href="org/apache/hadoop/hbase/exceptions/TestClientExceptionsUtil.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">TestClientExceptionsUtil</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientExponentialBackoff.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">TestClientExponentialBackoff</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientNoCluster.FakeServer.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">TestClientNoCluster.FakeServer</span></a> (implements org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ClientService.BlockingInterface)</li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html" title="class in org.apache.hadoop.hbase.client"><span class="strong">TestClientNoCluster.ManyServersManyRegionsConnection</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/package-list
----------------------------------------------------------------------
diff --git a/testdevapidocs/package-list b/testdevapidocs/package-list
index e1cfdf3..fc5f8eb 100644
--- a/testdevapidocs/package-list
+++ b/testdevapidocs/package-list
@@ -25,6 +25,7 @@ org.apache.hadoop.hbase.constraint
 org.apache.hadoop.hbase.coprocessor
 org.apache.hadoop.hbase.coprocessor.example
 org.apache.hadoop.hbase.errorhandling
+org.apache.hadoop.hbase.exceptions
 org.apache.hadoop.hbase.executor
 org.apache.hadoop.hbase.filter
 org.apache.hadoop.hbase.fs


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html
index ee363fc..16f504e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.NoNonceGenerator.html
@@ -43,2273 +43,2227 @@
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.MultiActionResultTooLarge;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.RegionTooBusyException;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.RetryImmediatelyException;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.ServerName;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.TableName;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.security.User;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.zookeeper.KeeperException;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>import javax.annotation.Nullable;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>import java.io.Closeable;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import java.io.IOException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import java.io.InterruptedIOException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import java.net.InetAddress;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import java.net.InetSocketAddress;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import java.util.ArrayList;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import java.util.Date;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import java.util.List;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import java.util.concurrent.BlockingQueue;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import java.util.concurrent.ConcurrentMap;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import java.util.concurrent.ExecutorService;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import java.util.concurrent.TimeUnit;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>/**<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.111"></a>
-<span class="sourceLineNo">112</span>@InterfaceAudience.Private<a name="line.112"></a>
-<span class="sourceLineNo">113</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  private final boolean hostnamesCanChange;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  private final long pause;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private final boolean useMetaReplicas;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private final int numTries;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  final int rpcTimeout;<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>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.131"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ServerName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.TableName;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.security.User;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.zookeeper.KeeperException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>import javax.annotation.Nullable;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>import java.io.Closeable;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import java.io.IOException;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import java.io.InterruptedIOException;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import java.net.InetAddress;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import java.net.InetSocketAddress;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import java.util.ArrayList;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import java.util.Date;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import java.util.List;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import java.util.concurrent.BlockingQueue;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import java.util.concurrent.ConcurrentMap;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import java.util.concurrent.ExecutorService;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import java.util.concurrent.TimeUnit;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>/**<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.103"></a>
+<span class="sourceLineNo">104</span> */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.107"></a>
+<span class="sourceLineNo">108</span>@InterfaceAudience.Private<a name="line.108"></a>
+<span class="sourceLineNo">109</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private final boolean hostnamesCanChange;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  private final long pause;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  private final boolean useMetaReplicas;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private final int numTries;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  final int rpcTimeout;<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private final AsyncProcess asyncProcess;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  // single tracker per connection<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  private final ServerStatisticTracker stats;<a name="line.131"></a>
 <span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private final AsyncProcess asyncProcess;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  // single tracker per connection<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  private final ServerStatisticTracker stats;<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  private volatile boolean closed;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private volatile boolean aborted;<a name="line.138"></a>
+<span class="sourceLineNo">133</span>  private volatile boolean closed;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private volatile boolean aborted;<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // package protected for the tests<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  ClusterStatusListener clusterStatusListener;<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
 <span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>  // package protected for the tests<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  ClusterStatusListener clusterStatusListener;<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private final Object metaRegionLock = new Object();<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private final Object masterAndZKLock = new Object();<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  // thread executor shared by all HTableInterface instances created<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  // by this connection<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private volatile ExecutorService batchPool = null;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  // by this connection<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private volatile boolean cleanupPool = false;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private final Configuration conf;<a name="line.161"></a>
+<span class="sourceLineNo">140</span>  private final Object metaRegionLock = new Object();<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final Object masterAndZKLock = new Object();<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  // thread executor shared by all HTableInterface instances created<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  // by this connection<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private volatile ExecutorService batchPool = null;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  // by this connection<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private volatile boolean cleanupPool = false;<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private final Configuration conf;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  private final TableConfiguration tableConfig;<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final TableConfiguration tableConfig;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  // Client rpc instance.<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private RpcClient rpcClient;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  private final MetaCache metaCache;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private final MetricsConnection metrics;<a name="line.171"></a>
+<span class="sourceLineNo">163</span>  // Client rpc instance.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private RpcClient rpcClient;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final MetaCache metaCache;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  private final MetricsConnection metrics;<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  protected User user;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.171"></a>
 <span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  protected User user;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.173"></a>
 <span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>  private final RetryingCallerInterceptor interceptor;<a name="line.175"></a>
 <span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private final RetryingCallerInterceptor interceptor;<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>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   Registry registry;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private final ClientBackoffPolicy backoffPolicy;<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>   * constructor<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * @param conf Configuration object<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  ConnectionImplementation(Configuration conf,<a name="line.192"></a>
-<span class="sourceLineNo">193</span>                           ExecutorService pool, User user) throws IOException {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    this.conf = conf;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.user = user;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    this.batchPool = pool;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    this.closed = false;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // how many times to try, one more than max *retry* time<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    this.rpcTimeout = conf.getInt(<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        if (nonceGenerator == null) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    } else {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      nonceGenerator = new NoNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      this.metrics = new MetricsConnection(this);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    } else {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      this.metrics = null;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>            ClusterStatusListener.Listener.class);<a name="line.237"></a>
+<span class="sourceLineNo">177</span>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   Registry registry;<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>  private final ClientBackoffPolicy backoffPolicy;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * constructor<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @param conf Configuration object<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  ConnectionImplementation(Configuration conf,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                           ExecutorService pool, User user) throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    this.conf = conf;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    this.user = user;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.batchPool = pool;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    this.closed = false;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // how many times to try, one more than max *retry* time<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.rpcTimeout = conf.getInt(<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (nonceGenerator == null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    } else {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      nonceGenerator = new NoNonceGenerator();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      this.metrics = new MetricsConnection(this);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      this.metrics = null;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.232"></a>
+<span class="sourceLineNo">233</span>            ClusterStatusListener.Listener.class);<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>    try {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      this.registry = setupRegistry();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      retrieveClusterId();<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.registry = setupRegistry();<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      retrieveClusterId();<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>      // Do we publish the status?<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      if (shouldListen) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        if (listenerClass == null) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.248"></a>
-<span class="sourceLineNo">249</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        } else {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.251"></a>
-<span class="sourceLineNo">252</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>                @Override<a name="line.253"></a>
-<span class="sourceLineNo">254</span>                public void newDead(ServerName sn) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>                  clearCaches(sn);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>                  rpcClient.cancelConnections(sn);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>              }, conf, listenerClass);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    } catch (Throwable e) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      // avoid leaks: registry, rpcClient, ...<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      LOG.debug("connection construction failed", e);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      close();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      throw e;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  /**<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param conn The connection for which to replace the generator.<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @return old nonce generator.<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  @VisibleForTesting<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      + cnm.getClass().getName());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    nonceGenerator = cnm;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    return ng;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * Look for an exception we know in the remote exception:<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * - hadoop.ipc wrapped exceptions<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * - nested exceptions<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   *<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   *            ThrottlingException<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @return null if we didn't find the exception, the exception otherwise.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public static Throwable findException(Object exception) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (exception == null || !(exception instanceof Throwable)) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      return null;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Throwable cur = (Throwable) exception;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    while (cur != null) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      if (cur instanceof RegionMovedException || cur instanceof RegionOpeningException<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          || cur instanceof RegionTooBusyException || cur instanceof ThrottlingException<a name="line.301"></a>
-<span class="sourceLineNo">302</span>          || cur instanceof RetryImmediatelyException) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return cur;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      }<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      if (cur instanceof RemoteException) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        RemoteException re = (RemoteException) cur;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        cur = re.unwrapRemoteException(<a name="line.307"></a>
-<span class="sourceLineNo">308</span>            RegionOpeningException.class, RegionMovedException.class,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>            RegionTooBusyException.class);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        if (cur == null) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          cur = re.unwrapRemoteException();<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        // unwrapRemoteException can return the exception given as a parameter when it cannot<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        //  unwrap it. In this case, there is no need to look further<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        // noinspection ObjectEquality<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        if (cur == re) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          return null;<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      } else {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        cur = cur.getCause();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">239</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // Do we publish the status?<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (shouldListen) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        if (listenerClass == null) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.244"></a>
+<span class="sourceLineNo">245</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.247"></a>
+<span class="sourceLineNo">248</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                @Override<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                public void newDead(ServerName sn) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                  clearCaches(sn);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                  rpcClient.cancelConnections(sn);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>              }, conf, listenerClass);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      }<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (Throwable e) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      // avoid leaks: registry, rpcClient, ...<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      LOG.debug("connection construction failed", e);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      close();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      throw e;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * @param conn The connection for which to replace the generator.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * @return old nonce generator.<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  @VisibleForTesting<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      + cnm.getClass().getName());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    nonceGenerator = cnm;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return ng;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    return getTable(TableName.valueOf(tableName));<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    return getTable(TableName.valueOf(tableName));<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>  @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    return getTable(tableName, getBatchPool());<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>  @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    if (params.getTableName() == null) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (params.getPool() == null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<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 null;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  @Override<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return getTable(TableName.valueOf(tableName));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  @Override<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    return getTable(TableName.valueOf(tableName));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return getTable(tableName, getBatchPool());<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    if (params.getTableName() == null) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (params.getPool() == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<a name="line.366"></a>
+<span class="sourceLineNo">323</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<a name="line.331"></a>
+<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>  @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    return new HRegionLocator(tableName, this);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  public Admin getAdmin() throws IOException {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    return new HBaseAdmin(this);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>  @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public MetricsConnection getConnectionMetrics() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return this.metrics;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  private ExecutorService getBatchPool() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (batchPool == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      synchronized (this) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        if (batchPool == null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.353"></a>
+<span class="sourceLineNo">354</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          this.cleanupPool = true;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    return this.batchPool;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    // shared HTable thread executor not yet initialized<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    if (maxThreads == 0) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.366"></a>
 <span class="sourceLineNo">367</span>    }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.369"></a>
+<span class="sourceLineNo">368</span>    if (coreThreads == 0) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<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>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return new HRegionLocator(tableName, this);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  public Admin getAdmin() throws IOException {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    return new HBaseAdmin(this);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>  @Override<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  public MetricsConnection getConnectionMetrics() {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    return this.metrics;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  private ExecutorService getBatchPool() {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    if (batchPool == null) {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      synchronized (this) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        if (batchPool == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.398"></a>
-<span class="sourceLineNo">399</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          this.cleanupPool = true;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      }<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    }<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    return this.batchPool;<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>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    // shared HTable thread executor not yet initialized<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    if (maxThreads == 0) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (coreThreads == 0) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    }<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    if (workQueue == null) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      workQueue =<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.420"></a>
-<span class="sourceLineNo">421</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.421"></a>
-<span class="sourceLineNo">422</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        coreThreads,<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        maxThreads,<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        keepAliveTime,<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        TimeUnit.SECONDS,<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        workQueue,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    if (this.metaLookupPool == null) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      synchronized (this) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (this.metaLookupPool == null) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          //Some of the threads would be used for meta replicas<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          //the queue is full, a new thread will be started<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          this.metaLookupPool = getThreadPool(<a name="line.443"></a>
-<span class="sourceLineNo">444</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.444"></a>
-<span class="sourceLineNo">445</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.445"></a>
-<span class="sourceLineNo">446</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return this.metaLookupPool;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    return batchPool;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
+<span class="sourceLineNo">371</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    if (workQueue == null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      workQueue =<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        coreThreads,<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        maxThreads,<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        keepAliveTime,<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        TimeUnit.SECONDS,<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        workQueue,<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    if (this.metaLookupPool == null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      synchronized (this) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (this.metaLookupPool == null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          //Some of the threads would be used for meta replicas<a name="line.394"></a>
+<span class="sourceLineNo">395</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.395"></a>
+<span class="sourceLineNo">396</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.396"></a>
+<span class="sourceLineNo">397</span>          //the queue is full, a new thread will be started<a name="line.397"></a>
+<span class="sourceLineNo">398</span>          this.metaLookupPool = getThreadPool(<a name="line.398"></a>
+<span class="sourceLineNo">399</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.399"></a>
+<span class="sourceLineNo">400</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.400"></a>
+<span class="sourceLineNo">401</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      }<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return this.metaLookupPool;<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>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    return batchPool;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>  private void shutdownPools() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      shutdownBatchPool(this.batchPool);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    pool.shutdown();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        pool.shutdownNow();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    } catch (InterruptedException e) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      pool.shutdownNow();<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>  /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * @return The cluster registry implementation to use.<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private Registry setupRegistry() throws IOException {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    return RegistryFactory.getRegistry(this);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span>  /**<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   * For tests only.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  @VisibleForTesting<a name="line.446"></a>
+<span class="sourceLineNo">447</span>  RpcClient getRpcClient() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    return rpcClient;<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>   * An identifier that will remain the same for a given connection.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>   */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>  public String toString(){<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    return "hconnection-0x" + Integer.toHexString(hashCode());<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>  protected String clusterId = null;<a name="line.459"></a>
 <span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private void shutdownPools() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      shutdownBatchPool(this.batchPool);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.466"></a>
+<span class="sourceLineNo">461</span>  protected void retrieveClusterId() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    if (clusterId != null) return;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    this.clusterId = this.registry.getClusterId();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    if (clusterId == null) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      clusterId = HConstants.CLUSTER_ID_DEFAULT;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      LOG.debug("clusterid came back null, using default " + clusterId);<a name="line.466"></a>
 <span class="sourceLineNo">467</span>    }<a name="line.467"></a>
 <span class="sourceLineNo">468</span>  }<a name="line.468"></a>
 <span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    pool.shutdown();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        pool.shutdownNow();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    } catch (InterruptedException e) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      pool.shutdownNow();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  /**<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @return The cluster registry implementation to use.<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   */<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  private Registry setupRegistry() throws IOException {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    return RegistryFactory.getRegistry(this);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>  /**<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * For tests only.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   */<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  @VisibleForTesting<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  RpcClient getRpcClient() {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return rpcClient;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * An identifier that will remain the same for a given connection.<a name="line.497"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public Configuration getConfiguration() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return this.conf;<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>  private void checkIfBaseNodeAvailable(ZooKeeperWatcher zkw)<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    throws MasterNotRunningException {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    String errorMsg;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    try {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (ZKUtil.checkExists(zkw, zkw.baseZNode) == -1) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        errorMsg = "The node " + zkw.baseZNode+" is not in ZooKeeper. "<a name="line.480"></a>
+<span class="sourceLineNo">481</span>          + "It should have been w

<TRUNCATED>

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

Posted by mi...@apache.org.
Published site at 138b754671d51d3f494adc250ab0cb9e085c858a.


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

Branch: refs/heads/asf-site
Commit: 39cf5e9b626bef2e0e6c444a234edee30c235c72
Parents: 6d41195
Author: jenkins <bu...@apache.org>
Authored: Thu Jan 28 15:21:49 2016 +0000
Committer: Misty Stanley-Jones <ms...@cloudera.com>
Committed: Thu Jan 28 09:24:05 2016 -0800

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |     4 +-
 apache_hbase_reference_guide.pdfmarks           |     4 +-
 apidocs/allclasses-frame.html                   |     1 +
 apidocs/allclasses-noframe.html                 |     1 +
 apidocs/index-all.html                          |     4 +
 .../hadoop/hbase/CallQueueTooBigException.html  |   257 +
 apidocs/org/apache/hadoop/hbase/Cell.html       |     4 +-
 .../class-use/CallQueueTooBigException.html     |   115 +
 .../org/apache/hadoop/hbase/package-frame.html  |     1 +
 .../apache/hadoop/hbase/package-summary.html    |    48 +-
 .../org/apache/hadoop/hbase/package-tree.html   |     1 +
 apidocs/overview-tree.html                      |     1 +
 apidocs/serialized-form.html                    |     5 +
 .../hadoop/hbase/CallQueueTooBigException.html  |   105 +
 .../hadoop/hbase/mapreduce/PutSortReducer.html  |    56 +-
 book.html                                       |     2 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 19068 ++++++++---------
 checkstyle.rss                                  |    38 +-
 coc.html                                        |     4 +-
 cygwin.html                                     |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     4 +-
 devapidocs/allclasses-frame.html                |     3 +-
 devapidocs/allclasses-noframe.html              |     3 +-
 devapidocs/index-all.html                       |    20 +-
 .../hbase/ByteBufferedKeyOnlyKeyValue.html      |     4 +-
 .../hadoop/hbase/CallQueueTooBigException.html  |   257 +
 devapidocs/org/apache/hadoop/hbase/Cell.html    |     4 +-
 .../class-use/CallQueueTooBigException.html     |   157 +
 .../class-use/InterfaceAudience.Private.html    |    16 +-
 .../class-use/InterfaceAudience.Public.html     |    88 +-
 .../class-use/InterfaceStability.Evolving.html  |    80 +-
 .../class-use/InterfaceStability.Unstable.html  |    12 +-
 .../hbase/classification/package-tree.html      |     6 +-
 .../client/AsyncProcess.AsyncRequestFuture.html |    12 +-
 ...stFutureImpl.ReplicaCallIssuingRunnable.html |    14 +-
 ...tFutureImpl.SingleServerRequestRunnable.html |    14 +-
 .../AsyncProcess.AsyncRequestFutureImpl.html    |    82 +-
 .../hbase/client/AsyncProcess.BatchErrors.html  |    20 +-
 .../client/AsyncProcess.ReplicaResultState.html |    10 +-
 .../hadoop/hbase/client/AsyncProcess.Retry.html |    12 +-
 .../hadoop/hbase/client/AsyncProcess.html       |    92 +-
 ...ectionImplementation.MasterServiceState.html |    18 +-
 ...onImplementation.MasterServiceStubMaker.html |    14 +-
 ...nnectionImplementation.NoNonceGenerator.html |     8 +-
 ...ntation.ServerErrorTracker.ServerErrors.html |    10 +-
 ...ectionImplementation.ServerErrorTracker.html |    20 +-
 .../ConnectionImplementation.StubMaker.html     |    14 +-
 .../hbase/client/ConnectionImplementation.html  |   505 +-
 .../ConnectionUtils.MasterlessConnection.html   |     2 +-
 .../hbase/client/CoprocessorHConnection.html    |     2 +-
 .../hadoop/hbase/client/package-tree.html       |     4 +-
 .../hbase/exceptions/ClientExceptionsUtil.html  |   300 +
 .../exceptions/ConnectionClosingException.html  |     4 +-
 .../class-use/ClientExceptionsUtil.html         |   115 +
 .../hadoop/hbase/exceptions/package-frame.html  |     4 +
 .../hbase/exceptions/package-summary.html       |    15 +
 .../hadoop/hbase/exceptions/package-tree.html   |     1 +
 .../hadoop/hbase/executor/package-tree.html     |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |     8 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     6 +-
 .../hbase/ipc/BalancedQueueRpcExecutor.html     |     6 +-
 .../hadoop/hbase/ipc/FifoRpcScheduler.html      |    45 +-
 .../hadoop/hbase/ipc/RWQueueRpcExecutor.html    |     6 +-
 .../apache/hadoop/hbase/ipc/RpcExecutor.html    |     6 +-
 .../apache/hadoop/hbase/ipc/RpcScheduler.html   |     8 +-
 .../RpcServer.BlockingServiceAndInterface.html  |    12 +-
 .../apache/hadoop/hbase/ipc/RpcServer.Call.html |    94 +-
 .../ipc/RpcServer.CallQueueTooBigException.html |   259 -
 .../hadoop/hbase/ipc/RpcServer.Connection.html  |   136 +-
 .../hbase/ipc/RpcServer.Listener.Reader.html    |    18 +-
 .../hadoop/hbase/ipc/RpcServer.Listener.html    |    38 +-
 .../hadoop/hbase/ipc/RpcServer.Responder.html   |    26 +-
 .../org/apache/hadoop/hbase/ipc/RpcServer.html  |   196 +-
 .../hadoop/hbase/ipc/SimpleRpcScheduler.html    |     6 +-
 .../hadoop/hbase/ipc/class-use/CallRunner.html  |    12 +-
 .../RpcServer.CallQueueTooBigException.html     |   157 -
 .../apache/hadoop/hbase/ipc/package-frame.html  |     1 -
 .../hadoop/hbase/ipc/package-summary.html       |    14 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     1 -
 .../apache/hadoop/hbase/ipc/package-use.html    |    15 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     4 +-
 .../hbase/master/balancer/package-tree.html     |     2 +-
 .../hadoop/hbase/master/package-tree.html       |     4 +-
 .../org/apache/hadoop/hbase/package-frame.html  |     1 +
 .../apache/hadoop/hbase/package-summary.html    |    54 +-
 .../org/apache/hadoop/hbase/package-tree.html   |     9 +-
 .../org/apache/hadoop/hbase/package-use.html    |    15 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../hadoop/hbase/quotas/package-tree.html       |     4 +-
 .../hadoop/hbase/regionserver/package-tree.html |    22 +-
 .../hbase/security/access/package-tree.html     |     2 +-
 .../hadoop/hbase/security/package-tree.html     |     2 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   240 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |    96 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    48 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |    90 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    36 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    18 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    10 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 devapidocs/overview-tree.html                   |     3 +-
 devapidocs/serialized-form.html                 |    10 +-
 .../hadoop/hbase/CallQueueTooBigException.html  |   105 +
 .../client/AsyncProcess.AsyncRequestFuture.html |  3543 +--
 ...stFutureImpl.ReplicaCallIssuingRunnable.html |  3543 +--
 ...tFutureImpl.SingleServerRequestRunnable.html |  3543 +--
 .../AsyncProcess.AsyncRequestFutureImpl.html    |  3543 +--
 .../hbase/client/AsyncProcess.BatchErrors.html  |  3543 +--
 .../client/AsyncProcess.ReplicaResultState.html |  3543 +--
 .../hadoop/hbase/client/AsyncProcess.Retry.html |  3543 +--
 .../hadoop/hbase/client/AsyncProcess.html       |  3543 +--
 ...ectionImplementation.MasterServiceState.html |  4394 ++--
 ...onImplementation.MasterServiceStubMaker.html |  4394 ++--
 ...nnectionImplementation.NoNonceGenerator.html |  4394 ++--
 ...ntation.ServerErrorTracker.ServerErrors.html |  4394 ++--
 ...ectionImplementation.ServerErrorTracker.html |  4394 ++--
 .../ConnectionImplementation.StubMaker.html     |  4394 ++--
 .../hbase/client/ConnectionImplementation.html  |  4394 ++--
 .../hbase/exceptions/ClientExceptionsUtil.html  |   167 +
 .../hbase/ipc/BalancedQueueRpcExecutor.html     |     4 +-
 .../hadoop/hbase/ipc/FifoRpcScheduler.html      |   138 +-
 .../hadoop/hbase/ipc/RWQueueRpcExecutor.html    |     4 +-
 .../hbase/ipc/RpcExecutor.QueueBalancer.html    |     2 +-
 .../ipc/RpcExecutor.RandomQueueBalancer.html    |     2 +-
 .../apache/hadoop/hbase/ipc/RpcExecutor.html    |     2 +-
 .../hadoop/hbase/ipc/RpcScheduler.Context.html  |     2 +-
 .../apache/hadoop/hbase/ipc/RpcScheduler.html   |     2 +-
 .../RpcServer.BlockingServiceAndInterface.html  |  4993 ++---
 .../apache/hadoop/hbase/ipc/RpcServer.Call.html |  4993 ++---
 .../ipc/RpcServer.CallQueueTooBigException.html |  2664 ---
 .../hadoop/hbase/ipc/RpcServer.Connection.html  |  4993 ++---
 .../hbase/ipc/RpcServer.Listener.Reader.html    |  4993 ++---
 .../hadoop/hbase/ipc/RpcServer.Listener.html    |  4993 ++---
 .../hadoop/hbase/ipc/RpcServer.Responder.html   |  4993 ++---
 .../org/apache/hadoop/hbase/ipc/RpcServer.html  |  4993 ++---
 ...mpleRpcScheduler.CallPriorityComparator.html |     8 +-
 .../hadoop/hbase/ipc/SimpleRpcScheduler.html    |     8 +-
 .../hadoop/hbase/mapreduce/PutSortReducer.html  |    56 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   240 +-
 .../tmpl/master/MasterStatusTmpl.Intf.html      |   240 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   240 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    68 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |    90 +-
 .../tmpl/regionserver/RSStatusTmpl.Intf.html    |    90 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    90 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    28 +-
 distribution-management.html                    |     4 +-
 export_control.html                             |     4 +-
 hbase-annotations/checkstyle.html               |     6 +-
 hbase-annotations/dependencies.html             |     6 +-
 hbase-annotations/dependency-convergence.html   |     6 +-
 hbase-annotations/dependency-info.html          |     6 +-
 hbase-annotations/dependency-management.html    |     6 +-
 hbase-annotations/distribution-management.html  |     6 +-
 hbase-annotations/index.html                    |     6 +-
 hbase-annotations/integration.html              |     6 +-
 hbase-annotations/issue-tracking.html           |     6 +-
 hbase-annotations/license.html                  |     6 +-
 hbase-annotations/mail-lists.html               |     6 +-
 hbase-annotations/plugin-management.html        |     6 +-
 hbase-annotations/plugins.html                  |     6 +-
 hbase-annotations/project-info.html             |     6 +-
 hbase-annotations/project-reports.html          |     6 +-
 hbase-annotations/project-summary.html          |     6 +-
 hbase-annotations/source-repository.html        |     6 +-
 hbase-annotations/team-list.html                |     6 +-
 hbase-spark/checkstyle.html                     |     6 +-
 hbase-spark/dependencies.html                   |     6 +-
 hbase-spark/dependency-convergence.html         |     6 +-
 hbase-spark/dependency-info.html                |     6 +-
 hbase-spark/dependency-management.html          |     6 +-
 hbase-spark/distribution-management.html        |     6 +-
 hbase-spark/index.html                          |     6 +-
 hbase-spark/integration.html                    |     6 +-
 hbase-spark/issue-tracking.html                 |     6 +-
 hbase-spark/license.html                        |     6 +-
 hbase-spark/mail-lists.html                     |     6 +-
 hbase-spark/plugin-management.html              |     6 +-
 hbase-spark/plugins.html                        |     6 +-
 hbase-spark/project-info.html                   |     6 +-
 hbase-spark/project-reports.html                |     6 +-
 hbase-spark/project-summary.html                |     6 +-
 hbase-spark/source-repository.html              |     6 +-
 hbase-spark/team-list.html                      |     6 +-
 index.html                                      |     4 +-
 integration.html                                |     4 +-
 issue-tracking.html                             |     4 +-
 license.html                                    |     4 +-
 mail-lists.html                                 |     4 +-
 metrics.html                                    |     4 +-
 modules.html                                    |     4 +-
 old_news.html                                   |     4 +-
 plugin-management.html                          |     4 +-
 plugins.html                                    |     4 +-
 poweredbyhbase.html                             |     4 +-
 project-info.html                               |     4 +-
 project-reports.html                            |     4 +-
 project-summary.html                            |     4 +-
 pseudo-distributed.html                         |     4 +-
 replication.html                                |     4 +-
 resources.html                                  |     4 +-
 source-repository.html                          |     4 +-
 sponsors.html                                   |     4 +-
 supportingprojects.html                         |     4 +-
 team-list.html                                  |     4 +-
 testapidocs/index-all.html                      |     2 +
 .../hbase/errorhandling/package-summary.html    |     4 +-
 .../hbase/errorhandling/package-tree.html       |     4 +-
 .../hadoop/hbase/exceptions/package-frame.html  |    12 +
 .../hbase/exceptions/package-summary.html       |   114 +
 .../hadoop/hbase/exceptions/package-tree.html   |   118 +
 .../hadoop/hbase/exceptions/package-use.html    |   115 +
 .../hadoop/hbase/filter/package-summary.html    |     4 +-
 .../hadoop/hbase/filter/package-tree.html       |     4 +-
 testapidocs/overview-frame.html                 |     1 +
 testapidocs/overview-summary.html               |    86 +-
 testapidocs/overview-tree.html                  |     1 +
 testapidocs/package-list                        |     1 +
 testdevapidocs/allclasses-frame.html            |     1 +
 testdevapidocs/allclasses-noframe.html          |     1 +
 testdevapidocs/index-all.html                   |    18 +-
 ...ncProcess.AsyncProcessForThrowableCheck.html |     4 +-
 ...estAsyncProcess.AsyncProcessWithFailure.html |    59 +-
 .../TestAsyncProcess.CallerWithFailure.html     |    46 +-
 .../TestAsyncProcess.CountingThreadFactory.html |    10 +-
 .../client/TestAsyncProcess.MyAsyncProcess.html |    24 +-
 ...AsyncProcess.MyAsyncProcessWithReplicas.html |    24 +-
 ...ncProcess.MyConnectionImpl.TestRegistry.html |    12 +-
 .../TestAsyncProcess.MyConnectionImpl.html      |   185 +-
 .../TestAsyncProcess.MyConnectionImpl2.html     |   183 +-
 .../TestAsyncProcess.MyThreadPoolExecutor.html  |     6 +-
 .../hbase/client/TestAsyncProcess.RR.html       |    14 +-
 .../TestAsyncProcess.ResponseGenerator.html     |     4 +-
 .../hadoop/hbase/client/TestAsyncProcess.html   |   198 +-
 ...luster.ManyServersManyRegionsConnection.html |   173 +-
 ...ionServerStoppedOnScannerOpenConnection.html |   173 +-
 ...estClientNoCluster.RpcTimeoutConnection.html |   173 +-
 .../hbase/client/TestHCM.BlockingFilter.html    |    10 +-
 .../client/TestHCM.SleepAndFailFirstTime.html   |     8 +-
 .../org/apache/hadoop/hbase/client/TestHCM.html |    76 +-
 .../hbase/errorhandling/package-summary.html    |     4 +-
 .../hbase/errorhandling/package-tree.html       |     4 +-
 .../exceptions/TestClientExceptionsUtil.html    |   259 +
 .../class-use/TestClientExceptionsUtil.html     |   115 +
 .../hadoop/hbase/exceptions/package-frame.html  |    18 +
 .../hbase/exceptions/package-summary.html       |   133 +
 .../hadoop/hbase/exceptions/package-tree.html   |   128 +
 .../hadoop/hbase/exceptions/package-use.html    |   115 +
 .../hadoop/hbase/executor/package-summary.html  |     4 +-
 .../hadoop/hbase/executor/package-tree.html     |     4 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     4 +-
 .../ipc/AbstractTestIPC.TestRpcServer.html      |     2 +-
 .../ipc/AbstractTestIPC.TestRpcServer1.html     |     2 +-
 .../IntegrationTestRpcClient.TestRpcServer.html |     2 +-
 .../TestRpcHandlerException.TestRpcServer.html  |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    10 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../hadoop/hbase/regionserver/package-tree.html |     2 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     2 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 testdevapidocs/overview-frame.html              |     1 +
 testdevapidocs/overview-summary.html            |   144 +-
 testdevapidocs/overview-tree.html               |     2 +
 testdevapidocs/package-list                     |     1 +
 testdevapidocs/serialized-form.html             |   189 +-
 ...ncProcess.AsyncProcessForThrowableCheck.html |  2051 +-
 ...estAsyncProcess.AsyncProcessWithFailure.html |  2051 +-
 .../TestAsyncProcess.CallerWithFailure.html     |  2051 +-
 .../TestAsyncProcess.CountingThreadFactory.html |  2051 +-
 .../client/TestAsyncProcess.MyAsyncProcess.html |  2051 +-
 ...AsyncProcess.MyAsyncProcessWithReplicas.html |  2051 +-
 ...ncProcess.MyConnectionImpl.TestRegistry.html |  2051 +-
 .../TestAsyncProcess.MyConnectionImpl.html      |  2051 +-
 .../TestAsyncProcess.MyConnectionImpl2.html     |  2051 +-
 .../TestAsyncProcess.MyThreadPoolExecutor.html  |  2051 +-
 .../hbase/client/TestAsyncProcess.RR.html       |  2051 +-
 .../TestAsyncProcess.ResponseGenerator.html     |  2051 +-
 .../hadoop/hbase/client/TestAsyncProcess.html   |  2051 +-
 .../hbase/client/TestHCM.BlockingFilter.html    |  2075 +-
 .../client/TestHCM.SleepAndFailFirstTime.html   |  2075 +-
 .../org/apache/hadoop/hbase/client/TestHCM.html |  2075 +-
 .../exceptions/TestClientExceptionsUtil.html    |   109 +
 xref-test/allclasses-frame.html                 |     3 +
 .../hadoop/hbase/client/TestAsyncProcess.html   |  2051 +-
 .../org/apache/hadoop/hbase/client/TestHCM.html |  2075 +-
 .../exceptions/TestClientExceptionsUtil.html    |    51 +
 .../hadoop/hbase/exceptions/package-frame.html  |    24 +
 .../hbase/exceptions/package-summary.html       |    67 +
 xref-test/overview-frame.html                   |     3 +
 xref-test/overview-summary.html                 |     5 +
 xref/allclasses-frame.html                      |     5 +-
 .../hadoop/hbase/CallQueueTooBigException.html  |    47 +
 .../hadoop/hbase/client/AsyncProcess.html       |  3543 +--
 .../hbase/client/ConnectionImplementation.html  |  4394 ++--
 .../hbase/exceptions/ClientExceptionsUtil.html  |   109 +
 .../hadoop/hbase/exceptions/package-frame.html  |     3 +
 .../hbase/exceptions/package-summary.html       |     5 +
 .../hbase/ipc/BalancedQueueRpcExecutor.html     |     4 +-
 .../hadoop/hbase/ipc/FifoRpcScheduler.html      |   138 +-
 .../hadoop/hbase/ipc/RWQueueRpcExecutor.html    |     4 +-
 .../apache/hadoop/hbase/ipc/RpcExecutor.html    |     2 +-
 .../apache/hadoop/hbase/ipc/RpcScheduler.html   |     2 +-
 xref/org/apache/hadoop/hbase/ipc/RpcServer.html |  4993 ++---
 .../hadoop/hbase/ipc/SimpleRpcScheduler.html    |     8 +-
 .../apache/hadoop/hbase/ipc/package-frame.html  |     3 -
 .../hadoop/hbase/ipc/package-summary.html       |     5 -
 .../hadoop/hbase/mapreduce/PutSortReducer.html  |    56 +-
 xref/org/apache/hadoop/hbase/package-frame.html |     3 +
 .../apache/hadoop/hbase/package-summary.html    |     5 +
 .../hbase/tmpl/common/TaskMonitorTmpl.html      |    90 +-
 .../hbase/tmpl/common/TaskMonitorTmplImpl.html  |    24 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   240 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    68 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    90 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    28 +-
 320 files changed, 88329 insertions(+), 87881 deletions(-)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 4398063..8737308 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:20160127151140+00'00')
-/ModDate (D:20160127151140+00'00')
+/CreationDate (D:20160128151634+00'00')
+/ModDate (D:20160128151634+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apache_hbase_reference_guide.pdfmarks
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdfmarks b/apache_hbase_reference_guide.pdfmarks
index 67a7a67..5b1f45c 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:20160127151330)
-  /CreationDate (D:20160127151330)
+  /ModDate (D:20160128151822)
+  /CreationDate (D:20160128151822)
   /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/39cf5e9b/apidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/apidocs/allclasses-frame.html b/apidocs/allclasses-frame.html
index b3351f8..08b1766 100644
--- a/apidocs/allclasses-frame.html
+++ b/apidocs/allclasses-frame.html
@@ -37,6 +37,7 @@
 <li><a href="org/apache/hadoop/hbase/util/Bytes.ByteArrayComparator.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">Bytes.ByteArrayComparator</a></li>
 <li><a href="org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">Bytes.RowEndKeyComparator</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/CallerDisconnectedException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">CallerDisconnectedException</a></li>
+<li><a href="org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase" target="classFrame">CallQueueTooBigException</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">CallTimeoutException</a></li>
 <li><a href="org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase" target="classFrame"><i>Cell</i></a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/CellCounter.html" title="class in org.apache.hadoop.hbase.mapreduce" target="classFrame">CellCounter</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/apidocs/allclasses-noframe.html b/apidocs/allclasses-noframe.html
index 053d22c..a4cb324 100644
--- a/apidocs/allclasses-noframe.html
+++ b/apidocs/allclasses-noframe.html
@@ -37,6 +37,7 @@
 <li><a href="org/apache/hadoop/hbase/util/Bytes.ByteArrayComparator.html" title="class in org.apache.hadoop.hbase.util">Bytes.ByteArrayComparator</a></li>
 <li><a href="org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html" title="class in org.apache.hadoop.hbase.util">Bytes.RowEndKeyComparator</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/CallerDisconnectedException.html" title="class in org.apache.hadoop.hbase.ipc">CallerDisconnectedException</a></li>
+<li><a href="org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc">CallTimeoutException</a></li>
 <li><a href="org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase"><i>Cell</i></a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/CellCounter.html" title="class in org.apache.hadoop.hbase.mapreduce">CellCounter</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index eb4c482..3123335 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -833,6 +833,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="strong"><a href="./org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html#callMethod(com.google.protobuf.Descriptors.MethodDescriptor,%20com.google.protobuf.RpcController,%20com.google.protobuf.Message,%20com.google.protobuf.Message,%20com.google.protobuf.RpcCallback)">callMethod(Descriptors.MethodDescriptor, RpcController, Message, Message, RpcCallback&lt;Message&gt;)</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="./org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="class in org.apache.hadoop.hbase.ipc">CoprocessorRpcChannel</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="./org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">CallQueueTooBigException</span></a> - Exception in <a href="./org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/apache/hadoop/hbase/CallQueueTooBigException.html#CallQueueTooBigException()">CallQueueTooBigException()</a></span> - Constructor for exception org.apache.hadoop.hbase.<a href="./org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="./org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">CallTimeoutException</span></a> - Exception in <a href="./org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></dt>
 <dd>
 <div class="block">Client-side call timeout</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apidocs/org/apache/hadoop/hbase/CallQueueTooBigException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/CallQueueTooBigException.html b/apidocs/org/apache/hadoop/hbase/CallQueueTooBigException.html
new file mode 100644
index 0000000..8732d6d
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/CallQueueTooBigException.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/CallQueueTooBigException.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>Prev Class</li>
+<li><a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/hadoop/hbase/CallQueueTooBigException.html" target="_top">Frames</a></li>
+<li><a href="CallQueueTooBigException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>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</div>
+<h2 title="Class CallQueueTooBigException" class="title">Class CallQueueTooBigException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/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><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">java.io.IOException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.CallQueueTooBigException</li>
+</ul>
+</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/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+@InterfaceStability.Evolving
+public class <a href="../../../../src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html#line.29">CallQueueTooBigException</a>
+extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.apache.hadoop.hbase.CallQueueTooBigException">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" 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><strong><a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html#CallQueueTooBigException()">CallQueueTooBigException</a></strong>()</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.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or inter
 face in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lan
 g/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement[])" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CallQueueTooBigException()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CallQueueTooBigException</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html#line.30">CallQueueTooBigException</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/CallQueueTooBigException.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>Prev Class</li>
+<li><a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/hadoop/hbase/CallQueueTooBigException.html" target="_top">Frames</a></li>
+<li><a href="CallQueueTooBigException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2016 <a href="http://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/39cf5e9b/apidocs/org/apache/hadoop/hbase/Cell.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/Cell.html b/apidocs/org/apache/hadoop/hbase/Cell.html
index 5fbc862..0948bf4 100644
--- a/apidocs/org/apache/hadoop/hbase/Cell.html
+++ b/apidocs/org/apache/hadoop/hbase/Cell.html
@@ -35,7 +35,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li>Prev Class</li>
+<li><a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">Prev Class</span></a></li>
 <li><a href="../../../../org/apache/hadoop/hbase/CellUtil.html" title="class in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -460,7 +460,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/Cell.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li>Prev Class</li>
+<li><a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">Prev Class</span></a></li>
 <li><a href="../../../../org/apache/hadoop/hbase/CellUtil.html" title="class in org.apache.hadoop.hbase"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apidocs/org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html b/apidocs/org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html
new file mode 100644
index 0000000..098f686
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.apache.hadoop.hbase.CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">Class</a></li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html" target="_top">Frames</a></li>
+<li><a href="CallQueueTooBigException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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.CallQueueTooBigException" class="title">Uses of Class<br>org.apache.hadoop.hbase.CallQueueTooBigException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.CallQueueTooBigException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">Class</a></li>
+<li class="navBarCell1Rev">Use</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>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html" target="_top">Frames</a></li>
+<li><a href="CallQueueTooBigException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/apidocs/org/apache/hadoop/hbase/package-frame.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/package-frame.html b/apidocs/org/apache/hadoop/hbase/package-frame.html
index 72649c8..54e8079 100644
--- a/apidocs/org/apache/hadoop/hbase/package-frame.html
+++ b/apidocs/org/apache/hadoop/hbase/package-frame.html
@@ -39,6 +39,7 @@
 </ul>
 <h2 title="Exceptions">Exceptions</h2>
 <ul title="Exceptions">
+<li><a href="CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase" target="classFrame">CallQueueTooBigException</a></li>
 <li><a href="ClockOutOfSyncException.html" title="class in org.apache.hadoop.hbase" target="classFrame">ClockOutOfSyncException</a></li>
 <li><a href="DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase" target="classFrame">DoNotRetryIOException</a></li>
 <li><a href="DroppedSnapshotException.html" title="class in org.apache.hadoop.hbase" target="classFrame">DroppedSnapshotException</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apidocs/org/apache/hadoop/hbase/package-summary.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/package-summary.html b/apidocs/org/apache/hadoop/hbase/package-summary.html
index 7332634..76587ac 100644
--- a/apidocs/org/apache/hadoop/hbase/package-summary.html
+++ b/apidocs/org/apache/hadoop/hbase/package-summary.html
@@ -226,76 +226,80 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/ClockOutOfSyncException.html" title="class in org.apache.hadoop.hbase">ClockOutOfSyncException</a></td>
 <td class="colLast">
 <div class="block">This exception is thrown by the master when a region server clock skew is
  too high.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a></td>
 <td class="colLast">
 <div class="block">Subclass if exception is not meant to be retried: e.g.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/DroppedSnapshotException.html" title="class in org.apache.hadoop.hbase">DroppedSnapshotException</a></td>
 <td class="colLast">
 <div class="block">Thrown during flush if the possibility snapshot content was not properly
  persisted into store files.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></td>
 <td class="colLast">
 <div class="block">All hbase specific IOExceptions should be subclasses of HBaseIOException</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/InvalidFamilyOperationException.html" title="class in org.apache.hadoop.hbase">InvalidFamilyOperationException</a></td>
 <td class="colLast">
 <div class="block">Thrown if a request is table schema modification is requested but
  made for an invalid family name.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a></td>
 <td class="colLast">
 <div class="block">Thrown if the master is not running</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/MultiActionResultTooLarge.html" title="class in org.apache.hadoop.hbase">MultiActionResultTooLarge</a></td>
 <td class="colLast">
 <div class="block">Exception thrown when the result needs to be chunked on the server side.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/NamespaceExistException.html" title="class in org.apache.hadoop.hbase">NamespaceExistException</a></td>
 <td class="colLast">
 <div class="block">Thrown when a namespace exists but should not</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/NamespaceNotFoundException.html" title="class in org.apache.hadoop.hbase">NamespaceNotFoundException</a></td>
 <td class="colLast">
 <div class="block">Thrown when a namespace can not be located</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/NotAllMetaRegionsOnlineException.html" title="class in org.apache.hadoop.hbase">NotAllMetaRegionsOnlineException</a></td>
 <td class="colLast">
 <div class="block">Thrown when an operation requires the root and all meta regions to be online</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/NotServingRegionException.html" title="class in org.apache.hadoop.hbase">NotServingRegionException</a></td>
 <td class="colLast">
 <div class="block">Thrown by a region server if it is sent a request for a region it is not
  serving.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a></td>
 <td class="colLast">
 <div class="block">This exception is thrown by the master when a region server was shut down and
@@ -304,65 +308,65 @@
  operations, or when an operation is performed on a region server that is still starting.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a></td>
 <td class="colLast">
 <div class="block">Thrown when something happens related to region handling.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/RegionTooBusyException.html" title="class in org.apache.hadoop.hbase">RegionTooBusyException</a></td>
 <td class="colLast">
 <div class="block">Thrown by a region server if it will block and wait to serve a request.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/RetryImmediatelyException.html" title="class in org.apache.hadoop.hbase">RetryImmediatelyException</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/TableExistsException.html" title="class in org.apache.hadoop.hbase">TableExistsException</a></td>
 <td class="colLast">
 <div class="block">Thrown when a table exists but should not</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a></td>
 <td class="colLast">
 <div class="block">Failed to find .tableinfo file under table dir</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/TableNotDisabledException.html" title="class in org.apache.hadoop.hbase">TableNotDisabledException</a></td>
 <td class="colLast">
 <div class="block">Thrown if a table should be offline but is not</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/TableNotEnabledException.html" title="class in org.apache.hadoop.hbase">TableNotEnabledException</a></td>
 <td class="colLast">
 <div class="block">Thrown if a table should be enabled but is not</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a></td>
 <td class="colLast">
 <div class="block">Thrown when a table can not be located</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/UnknownRegionException.html" title="class in org.apache.hadoop.hbase">UnknownRegionException</a></td>
 <td class="colLast">
 <div class="block">Thrown when we are asked to operate on a region we know nothing about.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/UnknownScannerException.html" title="class in org.apache.hadoop.hbase">UnknownScannerException</a></td>
 <td class="colLast">
 <div class="block">Thrown if a region server is passed an unknown scanner id.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/ZooKeeperConnectionException.html" title="class in org.apache.hadoop.hbase">ZooKeeperConnectionException</a></td>
 <td class="colLast">
 <div class="block">Thrown if the client can't connect to zookeeper</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/package-tree.html b/apidocs/org/apache/hadoop/hbase/package-tree.html
index d38c9fc..ba3c8df 100644
--- a/apidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/package-tree.html
@@ -99,6 +99,7 @@
 <ul>
 <li type="circle">java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><span class="strong">IOException</span></a>
 <ul>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">CallQueueTooBigException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClockOutOfSyncException.html" title="class in org.apache.hadoop.hbase"><span class="strong">ClockOutOfSyncException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/DroppedSnapshotException.html" title="class in org.apache.hadoop.hbase"><span class="strong">DroppedSnapshotException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase"><span class="strong">HBaseIOException</span></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html
index 4b7c1a7..bc0489b 100644
--- a/apidocs/overview-tree.html
+++ b/apidocs/overview-tree.html
@@ -491,6 +491,7 @@
 <li type="circle">java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><span class="strong">IOException</span></a>
 <ul>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/CallerDisconnectedException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">CallerDisconnectedException</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">CallQueueTooBigException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">CallTimeoutException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ClockOutOfSyncException.html" title="class in org.apache.hadoop.hbase"><span class="strong">ClockOutOfSyncException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.exceptions.<a href="org/apache/hadoop/hbase/exceptions/ConnectionClosingException.html" title="class in org.apache.hadoop.hbase.exceptions"><span class="strong">ConnectionClosingException</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apidocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/apidocs/serialized-form.html b/apidocs/serialized-form.html
index c5cabd0..cdf3ef3 100644
--- a/apidocs/serialized-form.html
+++ b/apidocs/serialized-form.html
@@ -69,6 +69,11 @@
 <li class="blockList">
 <h2 title="Package">Package&nbsp;org.apache.hadoop.hbase</h2>
 <ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.CallQueueTooBigException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">org.apache.hadoop.hbase.CallQueueTooBigException</a> extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.ClockOutOfSyncException">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apidocs/src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html b/apidocs/src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html
new file mode 100644
index 0000000..dd0ce43
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/CallQueueTooBigException.html
@@ -0,0 +1,105 @@
+<!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;<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><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>@SuppressWarnings("serial")<a name="line.26"></a>
+<span class="sourceLineNo">027</span>@InterfaceAudience.Public<a name="line.27"></a>
+<span class="sourceLineNo">028</span>@InterfaceStability.Evolving<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class CallQueueTooBigException extends IOException {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  public CallQueueTooBigException() {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    super();<a name="line.31"></a>
+<span class="sourceLineNo">032</span>  }<a name="line.32"></a>
+<span class="sourceLineNo">033</span>}<a name="line.33"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html
index 305bf89..7aeda8d 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/PutSortReducer.html
@@ -30,12 +30,12 @@
 <span class="sourceLineNo">022</span>import java.util.List;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.util.TreeSet;<a name="line.23"></a>
 <span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.Cell;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CellComparator;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.KeyValue;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.KeyValueUtil;<a name="line.30"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.Cell;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.CellComparator;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.KeyValue;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.KeyValueUtil;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.30"></a>
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Put;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.io.ImmutableBytesWritable;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import org.apache.hadoop.mapreduce.Reducer;<a name="line.33"></a>
@@ -76,27 +76,29 @@
 <span class="sourceLineNo">068</span>          for (Cell cell: cells) {<a name="line.68"></a>
 <span class="sourceLineNo">069</span>            KeyValue kv = KeyValueUtil.ensureKeyValue(cell);<a name="line.69"></a>
 <span class="sourceLineNo">070</span>            map.add(kv);<a name="line.70"></a>
-<span class="sourceLineNo">071</span>            curSize += kv.heapSize();<a name="line.71"></a>
-<span class="sourceLineNo">072</span>          }<a name="line.72"></a>
-<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      context.setStatus("Read " + map.size() + " entries of " + map.getClass()<a name="line.75"></a>
-<span class="sourceLineNo">076</span>          + "(" + StringUtils.humanReadableInt(curSize) + ")");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      int index = 0;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      for (KeyValue kv : map) {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        context.write(row, kv);<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        if (++index % 100 == 0)<a name="line.80"></a>
-<span class="sourceLineNo">081</span>          context.setStatus("Wrote " + index);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      }<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>      // if we have more entries to process<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      if (iter.hasNext()) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>        // force flush because we cannot guarantee intra-row sorted order<a name="line.86"></a>
-<span class="sourceLineNo">087</span>        context.write(null, null);<a name="line.87"></a>
-<span class="sourceLineNo">088</span>      }<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span>}<a name="line.91"></a>
+<span class="sourceLineNo">071</span>          }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        for(KeyValue kv: map){<a name="line.73"></a>
+<span class="sourceLineNo">074</span>          curSize +=kv.heapSize();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        }<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      context.setStatus("Read " + map.size() + " entries of " + map.getClass()<a name="line.77"></a>
+<span class="sourceLineNo">078</span>          + "(" + StringUtils.humanReadableInt(curSize) + ")");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      int index = 0;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      for (KeyValue kv : map) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        context.write(row, kv);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        if (++index % 100 == 0)<a name="line.82"></a>
+<span class="sourceLineNo">083</span>          context.setStatus("Wrote " + index);<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>      // if we have more entries to process<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      if (iter.hasNext()) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        // force flush because we cannot guarantee intra-row sorted order<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        context.write(null, null);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>}<a name="line.93"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 289f9b9..ba12ef4 100644
--- a/book.html
+++ b/book.html
@@ -33005,7 +33005,7 @@ The server will return cellblocks compressed using this same compressor as long
 <div id="footer">
 <div id="footer-text">
 Version 2.0.0-SNAPSHOT<br>
-Last updated 2016-01-27 14:45:17 UTC
+Last updated 2016-01-28 14:49:38 UTC
 </div>
 </div>
 </body>

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


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index 36edc93..5f88bf5 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -34,27 +34,27 @@
 <span class="sourceLineNo">026</span><a name="line.26"></a>
 <span class="sourceLineNo">027</span>{<a name="line.27"></a>
 <span class="sourceLineNo">028</span>  private final HRegionServer regionServer;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>  private final String bcv;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>  private final String format;<a name="line.30"></a>
+<span class="sourceLineNo">029</span>  private final String format;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  private final String bcn;<a name="line.30"></a>
 <span class="sourceLineNo">031</span>  private final String filter;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>  private final String bcn;<a name="line.32"></a>
+<span class="sourceLineNo">032</span>  private final String bcv;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  protected static org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData p_implData)<a name="line.33"></a>
 <span class="sourceLineNo">034</span>  {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>    if(! p_implData.getBcv__IsNotDefault())<a name="line.35"></a>
+<span class="sourceLineNo">035</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.35"></a>
 <span class="sourceLineNo">036</span>    {<a name="line.36"></a>
-<span class="sourceLineNo">037</span>      p_implData.setBcv("");<a name="line.37"></a>
+<span class="sourceLineNo">037</span>      p_implData.setFormat("html");<a name="line.37"></a>
 <span class="sourceLineNo">038</span>    }<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.39"></a>
+<span class="sourceLineNo">039</span>    if(! p_implData.getBcn__IsNotDefault())<a name="line.39"></a>
 <span class="sourceLineNo">040</span>    {<a name="line.40"></a>
-<span class="sourceLineNo">041</span>      p_implData.setFormat("html");<a name="line.41"></a>
+<span class="sourceLineNo">041</span>      p_implData.setBcn("");<a name="line.41"></a>
 <span class="sourceLineNo">042</span>    }<a name="line.42"></a>
 <span class="sourceLineNo">043</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.43"></a>
 <span class="sourceLineNo">044</span>    {<a name="line.44"></a>
 <span class="sourceLineNo">045</span>      p_implData.setFilter("general");<a name="line.45"></a>
 <span class="sourceLineNo">046</span>    }<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    if(! p_implData.getBcn__IsNotDefault())<a name="line.47"></a>
+<span class="sourceLineNo">047</span>    if(! p_implData.getBcv__IsNotDefault())<a name="line.47"></a>
 <span class="sourceLineNo">048</span>    {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>      p_implData.setBcn("");<a name="line.49"></a>
+<span class="sourceLineNo">049</span>      p_implData.setBcv("");<a name="line.49"></a>
 <span class="sourceLineNo">050</span>    }<a name="line.50"></a>
 <span class="sourceLineNo">051</span>    return p_implData;<a name="line.51"></a>
 <span class="sourceLineNo">052</span>  }<a name="line.52"></a>
@@ -62,10 +62,10 @@
 <span class="sourceLineNo">054</span>  {<a name="line.54"></a>
 <span class="sourceLineNo">055</span>    super(p_templateManager, __jamon_setOptionalArguments(p_implData));<a name="line.55"></a>
 <span class="sourceLineNo">056</span>    regionServer = p_implData.getRegionServer();<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    bcv = p_implData.getBcv();<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    format = p_implData.getFormat();<a name="line.58"></a>
+<span class="sourceLineNo">057</span>    format = p_implData.getFormat();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    bcn = p_implData.getBcn();<a name="line.58"></a>
 <span class="sourceLineNo">059</span>    filter = p_implData.getFilter();<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    bcn = p_implData.getBcn();<a name="line.60"></a>
+<span class="sourceLineNo">060</span>    bcv = p_implData.getBcv();<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 public void renderNoFlush(final java.io.Writer jamonWriter)<a name="line.63"></a>
@@ -94,8 +94,8 @@
 <span class="sourceLineNo">086</span>      // 41, 3<a name="line.86"></a>
 <span class="sourceLineNo">087</span>      {<a name="line.87"></a>
 <span class="sourceLineNo">088</span>        org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_1 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());<a name="line.88"></a>
-<span class="sourceLineNo">089</span>        __jamon__var_1.setFilter(filter);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        __jamon__var_1.setFormat("json" );<a name="line.90"></a>
+<span class="sourceLineNo">089</span>        __jamon__var_1.setFormat("json" );<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        __jamon__var_1.setFilter(filter);<a name="line.90"></a>
 <span class="sourceLineNo">091</span>        __jamon__var_1.renderNoFlush(jamonWriter);<a name="line.91"></a>
 <span class="sourceLineNo">092</span>      }<a name="line.92"></a>
 <span class="sourceLineNo">093</span>      // 41, 68<a name="line.93"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/distribution-management.html
----------------------------------------------------------------------
diff --git a/distribution-management.html b/distribution-management.html
index 8654772..04ac58b 100644
--- a/distribution-management.html
+++ b/distribution-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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Distribution Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -290,7 +290,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index dcca9d5..bf37587 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -330,7 +330,7 @@ for more details.</p>
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/hbase-annotations/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/checkstyle.html b/hbase-annotations/checkstyle.html
index d7bdb55..ae5afc0 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependencies.html b/hbase-annotations/dependencies.html
index c39777f..c9d8bf8 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-convergence.html b/hbase-annotations/dependency-convergence.html
index 56eee7a..3c70c76 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-info.html b/hbase-annotations/dependency-info.html
index 9486da0..6fceb8d 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-management.html b/hbase-annotations/dependency-management.html
index ee25126..44d5f28 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/distribution-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/distribution-management.html b/hbase-annotations/distribution-management.html
index 263aebf..fde67d7 100644
--- a/hbase-annotations/distribution-management.html
+++ b/hbase-annotations/distribution-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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/index.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/index.html b/hbase-annotations/index.html
index 0319885..b7b3c08 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/integration.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/integration.html b/hbase-annotations/integration.html
index 4d824e2..4c31b76 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/issue-tracking.html b/hbase-annotations/issue-tracking.html
index 307e1c9..480866e 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/license.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/license.html b/hbase-annotations/license.html
index b70ecff..7a8b012 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/mail-lists.html b/hbase-annotations/mail-lists.html
index 1b27489..e42f27d 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugin-management.html b/hbase-annotations/plugin-management.html
index 8aaea49..d4aaf98 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugins.html b/hbase-annotations/plugins.html
index d764088..946c3be 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-info.html b/hbase-annotations/project-info.html
index 082f017..eb25e98 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-reports.html b/hbase-annotations/project-reports.html
index 4f82a9d..7e6ec99 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-summary.html b/hbase-annotations/project-summary.html
index cbf9c38..5ef9919 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/source-repository.html b/hbase-annotations/source-repository.html
index 2f493b7..0990790 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-annotations/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/team-list.html b/hbase-annotations/team-list.html
index e45e7e0..450b4e5 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-spark/checkstyle.html b/hbase-spark/checkstyle.html
index 6ec03b5..54f5379 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependencies.html b/hbase-spark/dependencies.html
index bdb6d15..4815f29 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-convergence.html b/hbase-spark/dependency-convergence.html
index 45d82da..82dde80 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-info.html b/hbase-spark/dependency-info.html
index 73cc3d9..af5b671 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-management.html b/hbase-spark/dependency-management.html
index a81a20c..090fc7d 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/distribution-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/distribution-management.html b/hbase-spark/distribution-management.html
index 62da2d3..77b74f1 100644
--- a/hbase-spark/distribution-management.html
+++ b/hbase-spark/distribution-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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/index.html
----------------------------------------------------------------------
diff --git a/hbase-spark/index.html b/hbase-spark/index.html
index aca8a57..8a9aab8 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/integration.html
----------------------------------------------------------------------
diff --git a/hbase-spark/integration.html b/hbase-spark/integration.html
index eb9f571..01f0df7 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-spark/issue-tracking.html b/hbase-spark/issue-tracking.html
index 7b1acdf..b86c027 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/license.html
----------------------------------------------------------------------
diff --git a/hbase-spark/license.html b/hbase-spark/license.html
index 8eb6c31..077ac04 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-spark/mail-lists.html b/hbase-spark/mail-lists.html
index c48a4d9..aaadd48 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/plugin-management.html b/hbase-spark/plugin-management.html
index 91e7206..0d514df 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-spark/plugins.html b/hbase-spark/plugins.html
index 055d0af..f21c4b7 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-info.html b/hbase-spark/project-info.html
index 0404620..4420845 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-reports.html b/hbase-spark/project-reports.html
index 929783d..0f76213 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-summary.html b/hbase-spark/project-summary.html
index 5329c00..e592dfc 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-spark/source-repository.html b/hbase-spark/source-repository.html
index 60bc6dd..afc7e32 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/hbase-spark/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-spark/team-list.html b/hbase-spark/team-list.html
index 3dee77c..8217378 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 2016-01-27 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-01-28 -->
 <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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-01-27</span>
+        <span id="publishDate">Last Published: 2016-01-28</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/39cf5e9b/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 471caac..750564e 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -422,7 +422,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index e590943..ddec585 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -290,7 +290,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index f287385..6a6b3a4 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -287,7 +287,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 128a6ce..8de9856 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -490,7 +490,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 5ce410c..b1f5dbc 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -340,7 +340,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index 544ac1a..e633226 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -458,7 +458,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/modules.html
----------------------------------------------------------------------
diff --git a/modules.html b/modules.html
index b1a7672..639724b 100644
--- a/modules.html
+++ b/modules.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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Modules</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -366,7 +366,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index f3789ba..d8699f0 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -413,7 +413,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index dfd0c35..c90f0c3 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -423,7 +423,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 5cf8f9e..2bc9274 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -366,7 +366,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index e55c3e0..84ca9e9 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -768,7 +768,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index d6c96f8..bc823ba 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -340,7 +340,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 51acf96..50772ff 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -310,7 +310,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index cc633fe..a8ec4ac 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -330,7 +330,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 04fda92..d572983 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -307,7 +307,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 6f170cd..f6713bd 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -302,7 +302,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 44556da..655e202 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -324,7 +324,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 94842c6..de79a20 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -298,7 +298,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index 113dbbd..45d723c 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="20160127" />
+    <meta name="Date-Revision-yyyymmdd" content="20160128" />
     <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" />
@@ -332,7 +332,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-01-27</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-01-28</li>
             </p>
                 </div>
 


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html
index d0040f6..3180076 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html
@@ -61,1780 +61,1781 @@
 <span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.TableName;<a name="line.53"></a>
 <span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.backoff.ServerStatistics;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.htrace.Trace;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>import com.google.common.annotations.VisibleForTesting;<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> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * synchronous caller such as HTable.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * &lt;p&gt;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * to track operation progress.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * &lt;/p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * The class manages internally the retries.<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;/p&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;p&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;/p&gt;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * &lt;p&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * retrieving errors from different threads may be not thread safe.<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * arising from older operations.<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * &lt;/p&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * gets as well.<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;/p&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>@InterfaceAudience.Private<a name="line.98"></a>
-<span class="sourceLineNo">099</span>class AsyncProcess {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * this stage.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   */<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      "hbase.client.start.log.errors.counter";<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  /**<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * The context used to wait for results from one submit call.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   *  */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public static interface AsyncRequestFuture {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    public boolean hasError();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /**<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * Return value from a submit that didn't contain any requests.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    final Object[] result = new Object[0];<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public boolean hasError() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      return null;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>    @Override<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      return null;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    @Override<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    public Object[] getResults() {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      return result;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  };<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * the replica calls are launched. See results for details of this process.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private static class ReplicaResultState {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public ReplicaResultState(int callCount) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      this.callCount = callCount;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    int callCount;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    BatchErrors replicaErrors = null;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    @Override<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    public String toString() {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.htrace.Trace;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>import com.google.common.annotations.VisibleForTesting;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * synchronous caller such as HTable.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * &lt;p&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.68"></a>
+<span class="sourceLineNo">069</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * to track operation progress.<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;/p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * The class manages internally the retries.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;/p&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;p&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;/p&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * retrieving errors from different threads may be not thread safe.<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * arising from older operations.<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;/p&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;p&gt;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * gets as well.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/p&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>@InterfaceAudience.Private<a name="line.99"></a>
+<span class="sourceLineNo">100</span>class AsyncProcess {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * this stage.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      "hbase.client.start.log.errors.counter";<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * The context used to wait for results from one submit call.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   *  */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public static interface AsyncRequestFuture {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public boolean hasError();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Return value from a submit that didn't contain any requests.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final Object[] result = new Object[0];<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    public boolean hasError() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      return false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      return null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>    @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return null;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    public Object[] getResults() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      return result;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  };<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   * the replica calls are launched. See results for details of this process.<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private static class ReplicaResultState {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public ReplicaResultState(int callCount) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      this.callCount = callCount;<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>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    int callCount;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    BatchErrors replicaErrors = null;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    public String toString() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  // TODO: many of the fields should be made private<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  protected final long id;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  protected final ClusterConnection connection;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected final RpcRetryingCallerFactory rpcCallerFactory;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  protected final RpcControllerFactory rpcFactory;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  protected final BatchErrors globalErrors;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  protected final ExecutorService pool;<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  protected final AtomicLong tasksInProgress = new AtomicLong(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  protected final ConcurrentMap&lt;byte[], AtomicInteger&gt; taskCounterPerRegion =<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      new ConcurrentSkipListMap&lt;byte[], AtomicInteger&gt;(Bytes.BYTES_COMPARATOR);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected final ConcurrentMap&lt;ServerName, AtomicInteger&gt; taskCounterPerServer =<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      new ConcurrentHashMap&lt;ServerName, AtomicInteger&gt;();<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  // Start configuration settings.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final int startLogErrorsCnt;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  /**<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * The number of tasks simultaneously executed on the cluster.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  protected final int maxTotalConcurrentTasks;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * The number of tasks we run in parallel on a single region.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * With 1 (the default) , we ensure that the ordering of the queries is respected: we don't start<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * a set of operations on a region before the previous one is done. As well, this limits<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * the pressure we put on the region server.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  protected final int maxConcurrentTasksPerRegion;<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * The number of task simultaneously executed on a single region server.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  protected final int maxConcurrentTasksPerServer;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  protected final long pause;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  protected int numTries;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  protected int serverTrackerTimeout;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected int timeout;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  protected long primaryCallTimeoutMicroseconds;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // End configuration settings.<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  protected static class BatchErrors {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final List&lt;Throwable&gt; throwables = new ArrayList&lt;Throwable&gt;();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final List&lt;Row&gt; actions = new ArrayList&lt;Row&gt;();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    private final List&lt;String&gt; addresses = new ArrayList&lt;String&gt;();<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    public synchronized void add(Throwable ex, Row row, ServerName serverName) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (row == null){<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        throw new IllegalArgumentException("row cannot be null. location=" + serverName);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>      throwables.add(ex);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      actions.add(row);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      addresses.add(serverName != null ? serverName.toString() : "null");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public boolean hasErrors() {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return !throwables.isEmpty();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private synchronized RetriesExhaustedWithDetailsException makeException() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      return new RetriesExhaustedWithDetailsException(<a name="line.245"></a>
-<span class="sourceLineNo">246</span>          new ArrayList&lt;Throwable&gt;(throwables),<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          new ArrayList&lt;Row&gt;(actions), new ArrayList&lt;String&gt;(addresses));<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>    public synchronized void clear() {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      throwables.clear();<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      actions.clear();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      addresses.clear();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public synchronized void merge(BatchErrors other) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      throwables.addAll(other.throwables);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      actions.addAll(other.actions);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      addresses.addAll(other.addresses);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  public AsyncProcess(ClusterConnection hc, Configuration conf, ExecutorService pool,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcRetryingCallerFactory rpcCaller, boolean useGlobalErrors,<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      RpcControllerFactory rpcFactory) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    if (hc == null) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      throw new IllegalArgumentException("HConnection cannot be null.");<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>    this.connection = hc;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    this.pool = pool;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    this.globalErrors = useGlobalErrors ? new BatchErrors() : null;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    this.id = COUNTER.incrementAndGet();<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // how many times we could try in total, one more than retry number<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    this.numTries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER) + 1;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    this.timeout = conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    this.primaryCallTimeoutMicroseconds = conf.getInt(PRIMARY_CALL_TIMEOUT_KEY, 10000);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    this.maxTotalConcurrentTasks = conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    this.maxConcurrentTasksPerServer = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERSERVER_TASKS,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERSERVER_TASKS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.maxConcurrentTasksPerRegion = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERREGION_TASKS,<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERREGION_TASKS);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.startLogErrorsCnt =<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        conf.getInt(START_LOG_ERRORS_AFTER_COUNT_KEY, DEFAULT_START_LOG_ERRORS_AFTER_COUNT);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (this.maxTotalConcurrentTasks &lt;= 0) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throw new IllegalArgumentException("maxTotalConcurrentTasks=" + maxTotalConcurrentTasks);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (this.maxConcurrentTasksPerServer &lt;= 0) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      throw new IllegalArgumentException("maxConcurrentTasksPerServer=" +<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          maxConcurrentTasksPerServer);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    if (this.maxConcurrentTasksPerRegion &lt;= 0) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      throw new IllegalArgumentException("maxConcurrentTasksPerRegion=" +<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          maxConcurrentTasksPerRegion);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Server tracker allows us to do faster, and yet useful (hopefully), retries.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // However, if we are too useful, we might fail very quickly due to retry count limit.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // To avoid this, we are going to cheat for now (see HBASE-7659), and calculate maximum<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    // retry time if normal retries were used. Then we will retry until this time runs out.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // If we keep hitting one server, the net effect will be the incremental backoff, and<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    // essentially the same number of retries as planned. If we have to do faster retries,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // we will do more retries in aggregate, but the user will be none the wiser.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    this.serverTrackerTimeout = 0;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (int i = 0; i &lt; this.numTries; ++i) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      serverTrackerTimeout += ConnectionUtils.getPauseTime(this.pause, i);<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>    this.rpcCallerFactory = rpcCaller;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    this.rpcFactory = rpcFactory;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @return pool if non null, otherwise returns this.pool if non null, otherwise throws<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   *         RuntimeException<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  private ExecutorService getPool(ExecutorService pool) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (pool != null) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      return pool;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    if (this.pool != null) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      return this.pool;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    throw new RuntimeException("Neither AsyncProcess nor request have ExecutorService");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  /**<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * See {@link #submit(ExecutorService, TableName, List, boolean, Batch.Callback, boolean)}.<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public &lt;CResult&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback, boolean needResults)<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      throws InterruptedIOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return submit(null, tableName, rows, atLeastOne, callback, needResults);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  /**<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * Extract from the rows list what we can submit. The rows we can not submit are kept in the<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * list. Does not send requests to replicas (not currently used for anything other<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * than streaming puts anyway).<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   *<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * @param pool ExecutorService to use.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * @param tableName The table for which this request is needed.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * @param callback Batch callback. Only called on success (94 behavior).<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * @param needResults Whether results are needed, or can be discarded.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @param rows - the submitted row. Modified by the method: we remove the rows we took.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * @param atLeastOne true if we should submit at least a subset.<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   */<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  public &lt;CResult&gt; AsyncRequestFuture submit(ExecutorService pool, TableName tableName,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      List&lt;? extends Row&gt; rows, boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      boolean needResults) throws InterruptedIOException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (rows.isEmpty()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return NO_REQS_RESULT;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    List&lt;Action&lt;Row&gt;&gt; retainedActions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    long nonceGroup = ng.getNonceGroup(); // Currently, nonce group is per entire client.<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    // Location errors that happen before we decide what requests to take.<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    List&lt;Exception&gt; locationErrors = null;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    List&lt;Integer&gt; locationErrorRows = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    do {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      // Wait until there is at least one slot for a new task.<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      waitForMaximumCurrentTasks(maxTotalConcurrentTasks - 1);<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>      // Remember the previous decisions about regions or region servers we put in the<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      //  final multi.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      Map&lt;Long, Boolean&gt; regionIncluded = new HashMap&lt;Long, Boolean&gt;();<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      Map&lt;ServerName, Boolean&gt; serverIncluded = new HashMap&lt;ServerName, Boolean&gt;();<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>      int posInList = -1;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      Iterator&lt;? extends Row&gt; it = rows.iterator();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      while (it.hasNext()) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        Row r = it.next();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        HRegionLocation loc;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (r == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            throw new IllegalArgumentException("#" + id + ", row cannot be null");<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          // Make sure we get 0-s replica.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          RegionLocations locs = connection.locateRegion(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>              tableName, r.getRow(), true, true, RegionReplicaUtil.DEFAULT_REPLICA_ID);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (locs == null || locs.isEmpty() || locs.getDefaultRegionLocation() == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            throw new IOException("#" + id + ", no location found, aborting submit for"<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                + " tableName=" + tableName + " rowkey=" + Bytes.toStringBinary(r.getRow()));<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          loc = locs.getDefaultRegionLocation();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        } catch (IOException ex) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          locationErrors = new ArrayList&lt;Exception&gt;();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          locationErrorRows = new ArrayList&lt;Integer&gt;();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error("Failed to get region location ", ex);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          // This action failed before creating ars. Retain it, but do not add to submit list.<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          // We will then add it to ars in an already-failed state.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          retainedActions.add(new Action&lt;Row&gt;(r, ++posInList));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          locationErrors.add(ex);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>          locationErrorRows.add(posInList);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          it.remove();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>          break; // Backward compat: we stop considering actions on location error.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>        if (canTakeOperation(loc, regionIncluded, serverIncluded)) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, ++posInList);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>          setNonce(ng, r, action);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          retainedActions.add(action);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          // TODO: replica-get is not supported on this path<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          byte[] regionName = loc.getRegionInfo().getRegionName();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          addAction(loc.getServerName(), regionName, action, actionsByServer, nonceGroup);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          it.remove();<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>    } while (retainedActions.isEmpty() &amp;&amp; atLeastOne &amp;&amp; (locationErrors == null));<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>    if (retainedActions.isEmpty()) return NO_REQS_RESULT;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return submitMultiActions(tableName, retainedActions, nonceGroup, callback, null, needResults,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      locationErrors, locationErrorRows, actionsByServer, pool);<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>  &lt;CResult&gt; AsyncRequestFuture submitMultiActions(TableName tableName,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      List&lt;Action&lt;Row&gt;&gt; retainedActions, long nonceGroup, Batch.Callback&lt;CResult&gt; callback,<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Object[] results, boolean needResults, List&lt;Exception&gt; locationErrors,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      List&lt;Integer&gt; locationErrorRows, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      ExecutorService pool) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      tableName, retainedActions, nonceGroup, pool, callback, results, needResults);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Add location errors if any<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    if (locationErrors != null) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      for (int i = 0; i &lt; locationErrors.size(); ++i) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        int originalIndex = locationErrorRows.get(i);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        Row row = retainedActions.get(originalIndex).getAction();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        ars.manageError(originalIndex, row,<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          Retry.NO_LOCATION_PROBLEM, locationErrors.get(i), null);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    ars.sendMultiAction(actionsByServer, 1, null, false);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return ars;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Helper that is used when grouping the actions per region server.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   *<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param loc - the destination. Must not be null.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @param action - the action to add to the multiaction<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @param actionsByServer the multiaction per server<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param nonceGroup Nonce group.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private static void addAction(ServerName server, byte[] regionName, Action&lt;Row&gt; action,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer, long nonceGroup) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    MultiAction&lt;Row&gt; multiAction = actionsByServer.get(server);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (multiAction == null) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      multiAction = new MultiAction&lt;Row&gt;();<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      actionsByServer.put(server, multiAction);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (action.hasNonce() &amp;&amp; !multiAction.hasNonceGroup()) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      multiAction.setNonceGroup(nonceGroup);<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>    multiAction.add(regionName, action);<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>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Check if we should send new operations to this region or region server.<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * We're taking into account the past decision; if we have already accepted<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * operation on a given region, we accept all operations for this region.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   *<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param loc; the region and the server name we want to use.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @return true if this region is considered as busy.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  protected boolean canTakeOperation(HRegionLocation loc,<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                                     Map&lt;Long, Boolean&gt; regionsIncluded,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                                     Map&lt;ServerName, Boolean&gt; serversIncluded) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    long regionId = loc.getRegionInfo().getRegionId();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    Boolean regionPrevious = regionsIncluded.get(regionId);<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (regionPrevious != null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // We already know what to do with this region.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      return regionPrevious;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span>    Boolean serverPrevious = serversIncluded.get(loc.getServerName());<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    if (Boolean.FALSE.equals(serverPrevious)) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // It's a new region, on a region server that we have already excluded.<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return false;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    AtomicInteger regionCnt = taskCounterPerRegion.get(loc.getRegionInfo().getRegionName());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (regionCnt != null &amp;&amp; regionCnt.get() &gt;= maxConcurrentTasksPerRegion) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Too many tasks on this region already.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      return false;<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>    if (serverPrevious == null) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      // The region is ok, but we need to decide for this region server.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      int newServers = 0; // number of servers we're going to contact so far<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      for (Map.Entry&lt;ServerName, Boolean&gt; kv : serversIncluded.entrySet()) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (kv.getValue()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          newServers++;<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // Do we have too many total tasks already?<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      boolean ok = (newServers + tasksInProgress.get()) &lt; maxTotalConcurrentTasks;<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      if (ok) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>        // If the total is fine, is it ok for this individual server?<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        AtomicInteger serverCnt = taskCounterPerServer.get(loc.getServerName());<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        ok = (serverCnt == null || serverCnt.get() &lt; maxConcurrentTasksPerServer);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      if (!ok) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        serversIncluded.put(loc.getServerName(), Boolean.FALSE);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        return false;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>      serversIncluded.put(loc.getServerName(), Boolean.TRUE);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    } else {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      assert serverPrevious.equals(Boolean.TRUE);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    regionsIncluded.put(regionId, Boolean.TRUE);<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return true;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * See {@link #submitAll(ExecutorService, TableName, List, Batch.Callback, Object[])}.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   */<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(TableName tableName,<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    return submitAll(null, tableName, rows, callback, results);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
-<span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * Submit immediately the list of rows, whatever the server status. Kept for backward<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * compatibility: it allows to be used with the batch interface that return an array of objects.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   *<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * @param pool ExecutorService to use.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * @param tableName name of the table for which the submission is made.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param rows the list of rows.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param callback the callback.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @param results Optional array to return the results thru; backward compat.<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(ExecutorService pool, TableName tableName,<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    List&lt;Action&lt;Row&gt;&gt; actions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.563"></a>
-<span class="sourceLineNo">564</span><a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // The position will be used by the processBatch to match the object array returned.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    int posInList = -1;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    for (Row r : rows) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      posInList++;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (r instanceof Put) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        Put put = (Put) r;<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        if (put.isEmpty()) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          throw new IllegalArgumentException("No columns to insert for #" + (posInList+1)+ " item");<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, posInList);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      setNonce(ng, r, action);<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      actions.add(action);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        tableName, actions, ng.getNonceGroup(), getPool(pool), callback, results, results != null);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ars.groupAndSendMultiAction(actions, 1);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return ars;<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>  private static void setNonce(NonceGenerator ng, Row r, Action&lt;Row&gt; action) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (!(r instanceof Append) &amp;&amp; !(r instanceof Increment)) return;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    action.setNonce(ng.newNonce()); // Action handles NO_NONCE, so it's ok if ng is disabled.<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span><a name="line.590"></a>
-<span class="sourceLineNo">591</span>  /**<a name="line.591"></a>
-<span class="sourceLineNo">592</span>   * The context, and return value, for a single submit/submitAll call.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * Note on how this class (one AP submit) works. Initially, all requests are split into groups<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * by server; request is sent to each server in parallel; the RPC calls are not async so a<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * thread per server is used. Every time some actions fail, regions/locations might have<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * changed, so we re-group them by server and region again and send these groups in parallel<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * too. The result, in case of retries, is a "tree" of threads, with parent exiting after<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * scheduling children. This is why lots of code doesn't require any synchronization.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  protected class AsyncRequestFutureImpl&lt;CResult&gt; implements AsyncRequestFuture {<a name="line.600"></a>
-<span class="sourceLineNo">601</span><a name="line.601"></a>
-<span class="sourceLineNo">602</span>    /**<a name="line.602"></a>
-<span class="sourceLineNo">603</span>     * Runnable (that can be submitted to thread pool) that waits for when it's time<a name="line.603"></a>
-<span class="sourceLineNo">604</span>     * to issue replica calls, finds region replicas, groups the requests by replica and<a name="line.604"></a>
-<span class="sourceLineNo">605</span>     * issues the calls (on separate threads, via sendMultiAction).<a name="line.605"></a>
-<span class="sourceLineNo">606</span>     * This is done on a separate thread because we don't want to wait on user thread for<a name="line.606"></a>
-<span class="sourceLineNo">607</span>     * our asynchronous call, and usually we have to wait before making replica calls.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>     */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    private final class ReplicaCallIssuingRunnable implements Runnable {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      private final long startTime;<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      private final List&lt;Action&lt;Row&gt;&gt; initialActions;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>      public ReplicaCallIssuingRunnable(List&lt;Action&lt;Row&gt;&gt; initialActions, long startTime) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.initialActions = initialActions;<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        this.startTime = startTime;<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>      @Override<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      public void run() {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        boolean done = false;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        if (primaryCallTimeoutMicroseconds &gt; 0) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>          try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>            done = waitUntilDone(startTime * 1000L + primaryCallTimeoutMicroseconds);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          } catch (InterruptedException ex) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>            LOG.error("Replica thread was interrupted - no replica calls: " + ex.getMessage());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            return;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>          }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        if (done) return; // Done within primary timeout<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        List&lt;Action&lt;Row&gt;&gt; unknownLocActions = new ArrayList&lt;Action&lt;Row&gt;&gt;();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        if (replicaGetIndices == null) {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>          for (int i = 0; i &lt; results.length; ++i) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>            addReplicaActions(i, actionsByServer, unknownLocActions);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          }<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        } else {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>          for (int replicaGetIndice : replicaGetIndices) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>            addReplicaActions(replicaGetIndice, actionsByServer, unknownLocActions);<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>        if (!actionsByServer.isEmpty()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          sendMultiAction(actionsByServer, 1, null, unknownLocActions.isEmpty());<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        }<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        if (!unknownLocActions.isEmpty()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>          actionsByServer = new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          for (Action&lt;Row&gt; action : unknownLocActions) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>            addReplicaActionsAgain(action, actionsByServer);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          // Some actions may have completely failed, they are handled inside addAgain.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>          if (!actionsByServer.isEmpty()) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>            sendMultiAction(actionsByServer, 1, null, true);<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>      }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>      /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>       * Add replica actions to action map by server.<a name="line.658"></a>
-<span class="sourceLineNo">659</span>       * @param index Index of the original action.<a name="line.659"></a>
-<span class="sourceLineNo">660</span>       * @param actionsByServer The map by server to add it to.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>       */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      private void addReplicaActions(int index, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.662"></a>
-<span class="sourceLineNo">663</span>          List&lt;Action&lt;Row&gt;&gt; unknownReplicaActions) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>        if (results[index] != null) return; // opportunistic. Never goes from non-null to null.<a name="line.664"></a>
-<span class="sourceLineNo">665</span>        Action&lt;Row&gt; action = initialActions.get(index);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        RegionLocations loc = findAllLocationsOrFail(action, true);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>        if (loc == null) return;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>        HRegionLocation[] locs = loc.getRegionLocations();<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        if (locs.length == 1) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>          LOG.warn("No replicas found for " + action.getAction());<a name="line.670"></a>
-<span class="sourceLineNo">671</span>          return;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        synchronized (replicaResultLock) {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          // Don't run replica calls if the original has finished. We could do it e.g. if<a name="line.674"></a>
-<span class="sourceLineNo">675</span>          // original has already failed before first replica call (unlikely given retries),<a name="line.675"></a>
-<span class="sourceLineNo">676</span>          // but that would require additional synchronization w.r.t. returning to caller.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          if (results[index] != null) return;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // We set the number of calls here. After that any path must call setResult/setError.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          // True even for replicas that are not found - if we refuse to send we MUST set error.<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          results[index] = new ReplicaResultState(locs.length);<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        for (int i = 1; i &lt; locs.length; ++i) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          Action&lt;Row&gt; replicaAction = new Action&lt;Row&gt;(action, i);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          if (locs[i] != null) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>            addAction(locs[i].getServerName(), locs[i].getRegionInfo().getRegionName(),<a name="line.685"></a>
-<span class="sourceLineNo">686</span>                replicaAction, actionsByServer, nonceGroup);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          } else {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>            unknownReplicaActions.add(replicaAction);<a name="line.688"></a>
-<span class="sourceLineNo">689</span>          }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      }<a name="line.691"></a>
-<span class="sourceLineNo">692</span><a name="line.692"></a>
-<span class="sourceLineNo">693</span>      private void addReplicaActionsAgain(<a name="line.693"></a>
-<span class="sourceLineNo">694</span>          Action&lt;Row&gt; action, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        if (action.getReplicaId() == RegionReplicaUtil.DEFAULT_REPLICA_ID) {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          throw new AssertionError("Cannot have default replica here");<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        HRegionLocation loc = getReplicaLocationOrFail(action);<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        if (loc == null) return;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        addAction(loc.getServerName(), loc.getRegionInfo().getRegionName(),<a name="line.700"></a>
-<span class="sourceLineNo">701</span>            action, actionsByServer, nonceGroup);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>    /**<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     * Runnable (that can be submitted to thread pool) that submits MultiAction to a<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * single server. The server call is synchronous, therefore we do it on a thread pool.<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     */<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    private final class SingleServerRequestRunnable implements Runnable {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      private final MultiAction&lt;Row&gt; multiAction;<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      private final int numAttempt;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      private final ServerName server;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>      private SingleServerRequestRunnable(<a name="line.715"></a>
-<span class="sourceLineNo">716</span>          MultiAction&lt;Row&gt; multiAction, int numAttempt, ServerName server,<a name="line.716"></a>
-<span class="sourceLineNo">717</span>          Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>        this.multiAction = multiAction;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        this.numAttempt = numAttempt;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        this.server = server;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        this.callsInProgress = callsInProgress;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>      @Override<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      public void run() {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        MultiResponse res;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        MultiServerCallable&lt;Row&gt; callable = null;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>        try {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>          callable = createCallable(server, tableName, multiAction);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>          try {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>            RpcRetryingCaller&lt;MultiResponse&gt; caller = createCaller(callable);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>            if (callsInProgress != null) callsInProgress.add(callable);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>            res = caller.callWithoutRetries(callable, timeout);<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span>            if (res == null) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>              // Cancelled<a name="line.736"></a>
-<span class="sourceLineNo">737</span>              return;<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>          } catch (IOException e) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            // The service itself failed . It may be an error coming from the communication<a name="line.741"></a>
-<span class="sourceLineNo">742</span>            //   layer, but, as well, a functional error raised by the server.<a name="line.742"></a>
-<span class="sourceLineNo">743</span>            receiveGlobalFailure(multiAction, server, numAttempt, e);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>            return;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          } catch (Throwable t) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>            // This should not happen. Let's log &amp; retry anyway.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>            LOG.error("#" + id + ", Caught throwable while calling. This is unexpected." +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>                " Retrying. Server is " + server + ", tableName=" + tableName, t);<a name="line.748"></a>
-<span class="sourceLineNo">749</span>            receiveGlobalFailure(multiAction, server, numAttempt, t);<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            return;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>          }<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>          // Normal case: we received an answer from the server, and it's not an exception.<a name="line.753"></a>
-<span class="sourceLineNo">754</span>          receiveMultiAction(multiAction, server, res, numAttempt);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>        } catch (Throwable t) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // Something really bad happened. We are on the send thread that will now die.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          LOG.error("Internal AsyncProcess #" + id + " error for "<a name="line.757"></a>
-<span class="sourceLineNo">758</span>              + tableName + " processing for " + server, t);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          throw new RuntimeException(t);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        } finally {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          decTaskCounters(multiAction.getRegions(), server);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>          if (callsInProgress != null &amp;&amp; callable != null) {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>            callsInProgress.remove(callable);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          }<a name="line.764"></a>
-<span class="sourceLineNo">765</span>        }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    private final Batch.Callback&lt;CResult&gt; callback;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    private final BatchErrors errors;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    private final ConnectionImplementation.ServerErrorTracker errorsByServer;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    private final ExecutorService pool;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.773"></a>
-<span class="sourceLineNo">774</span><a name="line.774"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  // TODO: many of the fields s

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html
index 64cabd4..d2496d9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html
@@ -279,286 +279,282 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#finalize()">finalize</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#findException(java.lang.Object)">findException</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg0)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.Admin</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getAdmin()">getAdmin</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getAdmin(org.apache.hadoop.hbase.ServerName)">getAdmin</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getAdmin(org.apache.hadoop.hbase.ServerName,%20boolean)">getAdmin</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0,
                 boolean&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.AsyncProcess</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getAsyncProcess()">getAsyncProcess</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getBackoffPolicy()">getBackoffPolicy</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.BufferedMutator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getBufferedMutator(org.apache.hadoop.hbase.client.BufferedMutatorParams)">getBufferedMutator</a></strong>(org.apache.hadoop.hbase.client.BufferedMutatorParams&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.BufferedMutator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getBufferedMutator(org.apache.hadoop.hbase.TableName)">getBufferedMutator</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getCachedLocation(org.apache.hadoop.hbase.TableName,%20byte[])">getCachedLocation</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                   byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ClientService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getClient(org.apache.hadoop.hbase.ServerName)">getClient</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getConfiguration()">getConfiguration</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.MetricsConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getConnectionMetrics()">getConnectionMetrics</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getCurrentBatchPool()">getCurrentBatchPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getCurrentMetaLookupPool()">getCurrentMetaLookupPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getCurrentNrHRS()">getCurrentNrHRS</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getHTableDescriptor(byte[])">getHTableDescriptor</a></strong>(byte[]&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getHTableDescriptor(org.apache.hadoop.hbase.TableName)">getHTableDescriptor</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getHTableDescriptors(java.util.List)">getHTableDescriptors</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getHTableDescriptorsByTableName(java.util.List)">getHTableDescriptorsByTableName</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.TableName&gt;&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.MasterKeepAliveConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getKeepAliveMasterService()">getKeepAliveMasterService</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.client.ZooKeeperKeepAliveConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getKeepAliveZooKeeperWatcher()">getKeepAliveZooKeeperWatcher</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getMaster()">getMaster</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.RpcRetryingCallerFactory</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration)">getNewRpcRetryingCallerFactory</a></strong>(org.apache.hadoop.conf.Configuration&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.NonceGenerator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getNonceGenerator()">getNonceGenerator</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getNumberOfCachedRegionLocations(org.apache.hadoop.hbase.TableName)">getNumberOfCachedRegionLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getRegionCachePrefetch(byte[])">getRegionCachePrefetch</a></strong>(byte[]&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getRegionCachePrefetch(org.apache.hadoop.hbase.TableName)">getRegionCachePrefetch</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getRegionLocation(byte[],%20byte[],%20boolean)">getRegionLocation</a></strong>(byte[]&nbsp;arg0,
                                   byte[]&nbsp;arg1,
                                   boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getRegionLocation(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean)">getRegionLocation</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                   byte[]&nbsp;arg1,
                                   boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.RegionLocator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getRegionLocator(org.apache.hadoop.hbase.TableName)">getRegionLocator</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.ipc.RpcClient</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getRpcClient()">getRpcClient</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.ServerStatisticTracker</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getStatisticsTracker()">getStatisticsTracker</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getStubKey(java.lang.String,%20java.lang.String,%20int,%20boolean)">getStubKey</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0,
                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg1,
                     int&nbsp;arg2,
                     boolean&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getTable(byte[])">getTable</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getTable(byte[],%20java.util.concurrent.ExecutorService)">getTable</a></strong>(byte[]&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getTable(java.lang.String)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getTable(java.lang.String,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getTable(org.apache.hadoop.hbase.TableName)">getTable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getTable(org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getTableNames()">getTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.TableState</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#getTableState(org.apache.hadoop.hbase.TableName)">getTableState</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static org.apache.hadoop.hbase.client.NonceGenerator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#injectNonceGeneratorForTesting(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.hbase.client.NonceGenerator)">injectNonceGeneratorForTesting</a></strong>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;arg0,
                                                             org.apache.hadoop.hbase.client.NonceGenerator&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isAborted()">isAborted</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isClosed()">isClosed</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isDeadServer(org.apache.hadoop.hbase.ServerName)">isDeadServer</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isMasterRunning()">isMasterRunning</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isTableAvailable(byte[])">isTableAvailable</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isTableAvailable(byte[],%20byte[][])">isTableAvailable</a></strong>(byte[]&nbsp;arg0,
                                 byte[][]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isTableAvailable(org.apache.hadoop.hbase.TableName)">isTableAvailable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isTableAvailable(org.apache.hadoop.hbase.TableName,%20byte[][])">isTableAvailable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                 byte[][]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isTableDisabled(byte[])">isTableDisabled</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isTableDisabled(org.apache.hadoop.hbase.TableName)">isTableDisabled</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isTableEnabled(byte[])">isTableEnabled</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#isTableEnabled(org.apache.hadoop.hbase.TableName)">isTableEnabled</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.TableName[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#listTableNames()">listTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#listTables()">listTables</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#locateRegion(byte[])">locateRegion</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#locateRegion(byte[],%20byte[])">locateRegion</a></strong>(byte[]&nbsp;arg0,
                         byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean)">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1,
                         boolean&nbsp;arg2,
                         boolean&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1,
@@ -566,27 +562,27 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                         boolean&nbsp;arg3,
                         int&nbsp;arg4)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#locateRegions(byte[])">locateRegions</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#locateRegions(byte[],%20boolean,%20boolean)">locateRegions</a></strong>(byte[]&nbsp;arg0,
                           boolean&nbsp;arg1,
                           boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#locateRegions(org.apache.hadoop.hbase.TableName)">locateRegions</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#locateRegions(org.apache.hadoop.hbase.TableName,%20boolean,%20boolean)">locateRegions</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                           boolean&nbsp;arg1,
                           boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#processBatch(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                         byte[]&nbsp;arg1,
@@ -595,7 +591,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                         org.apache.hadoop.hbase.TableName&nbsp;arg1,
@@ -604,7 +600,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#processBatchCallback(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                                         byte[]&nbsp;arg1,
@@ -614,7 +610,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#processBatchCallback(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                                         org.apache.hadoop.hbase.TableName&nbsp;arg1,
@@ -624,67 +620,67 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#releaseMaster(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">releaseMaster</a></strong>(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#releaseZooKeeperWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">releaseZooKeeperWatcher</a></strong>(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#relocateRegion(byte[],%20byte[])">relocateRegion</a></strong>(byte[]&nbsp;arg0,
                             byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">relocateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                             byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20int)">relocateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                             byte[]&nbsp;arg1,
                             int&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#retrieveClusterId()">retrieveClusterId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#setRegionCachePrefetch(byte[],%20boolean)">setRegionCachePrefetch</a></strong>(byte[]&nbsp;arg0,
                                             boolean&nbsp;arg1)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#setRegionCachePrefetch(org.apache.hadoop.hbase.TableName,%20boolean)">setRegionCachePrefetch</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                             boolean&nbsp;arg1)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#toString()">toString</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#updateCachedLocation(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName,%20long)">updateCachedLocation</a></strong>(org.apache.hadoop.hbase.HRegionInfo&nbsp;arg0,
                                         org.apache.hadoop.hbase.ServerName&nbsp;arg1,
                                         org.apache.hadoop.hbase.ServerName&nbsp;arg2,
                                         long&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#updateCachedLocations(byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(byte[]&nbsp;arg0,
                                           byte[]&nbsp;arg1,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg2,
                                           org.apache.hadoop.hbase.HRegionLocation&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.ServerName)">updateCachedLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                           byte[]&nbsp;arg1,
@@ -692,7 +688,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg3,
                                           org.apache.hadoop.hbase.ServerName&nbsp;arg4)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                           byte[]&nbsp;arg1,
@@ -851,15 +847,6 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
                                                                            org.apache.hadoop.hbase.client.NonceGenerator&nbsp;arg1)</pre>
 </li>
 </ul>
-<a name="findException(java.lang.Object)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>findException</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.0">findException</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg0)</pre>
-</li>
-</ul>
 <a name="getTable(java.lang.String)">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html
index 8f3255f..4cb856f 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html
@@ -109,7 +109,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.547">TestHCM.BlockingFilter</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.548">TestHCM.BlockingFilter</a>
 extends org.apache.hadoop.hbase.filter.FilterBase</pre>
 </li>
 </ul>
@@ -232,7 +232,7 @@ extends org.apache.hadoop.hbase.filter.FilterBase</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestHCM.BlockingFilter</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html#line.547">TestHCM.BlockingFilter</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html#line.548">TestHCM.BlockingFilter</a>()</pre>
 </li>
 </ul>
 </li>
@@ -249,7 +249,7 @@ extends org.apache.hadoop.hbase.filter.FilterBase</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>filterRowKey</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html#line.549">filterRowKey</a>(byte[]&nbsp;buffer,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html#line.550">filterRowKey</a>(byte[]&nbsp;buffer,
                    int&nbsp;offset,
                    int&nbsp;length)
                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -266,7 +266,7 @@ extends org.apache.hadoop.hbase.filter.FilterBase</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>filterKeyValue</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.filter.Filter.ReturnCode&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html#line.561">filterKeyValue</a>(org.apache.hadoop.hbase.Cell&nbsp;ignored)
+<pre>public&nbsp;org.apache.hadoop.hbase.filter.Filter.ReturnCode&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html#line.562">filterKeyValue</a>(org.apache.hadoop.hbase.Cell&nbsp;ignored)
                                                                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
@@ -281,7 +281,7 @@ extends org.apache.hadoop.hbase.filter.FilterBase</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>parseFrom</h4>
-<pre>public static&nbsp;org.apache.hadoop.hbase.filter.Filter&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html#line.565">parseFrom</a>(byte[]&nbsp;pbBytes)
+<pre>public static&nbsp;org.apache.hadoop.hbase.filter.Filter&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.BlockingFilter.html#line.566">parseFrom</a>(byte[]&nbsp;pbBytes)
                                                        throws org.apache.hadoop.hbase.exceptions.DeserializationException</pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code>org.apache.hadoop.hbase.exceptions.DeserializationException</code></dd></dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.SleepAndFailFirstTime.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.SleepAndFailFirstTime.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.SleepAndFailFirstTime.html
index e99effa..6cb52b7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.SleepAndFailFirstTime.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.SleepAndFailFirstTime.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.114">TestHCM.SleepAndFailFirstTime</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.115">TestHCM.SleepAndFailFirstTime</a>
 extends org.apache.hadoop.hbase.coprocessor.BaseRegionObserver</pre>
 <div class="block">This copro sleeps 20 second. The first call it fails. The second time, it works.</div>
 </li>
@@ -235,7 +235,7 @@ extends org.apache.hadoop.hbase.coprocessor.BaseRegionObserver</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ct</h4>
-<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/TestHCM.SleepAndFailFirstTime.html#line.115">ct</a></pre>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/TestHCM.SleepAndFailFirstTime.html#line.116">ct</a></pre>
 </li>
 </ul>
 </li>
@@ -252,7 +252,7 @@ extends org.apache.hadoop.hbase.coprocessor.BaseRegionObserver</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestHCM.SleepAndFailFirstTime</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.SleepAndFailFirstTime.html#line.117">TestHCM.SleepAndFailFirstTime</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.SleepAndFailFirstTime.html#line.118">TestHCM.SleepAndFailFirstTime</a>()</pre>
 </li>
 </ul>
 </li>
@@ -269,7 +269,7 @@ extends org.apache.hadoop.hbase.coprocessor.BaseRegionObserver</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>preGetOp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.SleepAndFailFirstTime.html#line.121">preGetOp</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.SleepAndFailFirstTime.html#line.122">preGetOp</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
             org.apache.hadoop.hbase.client.Get&nbsp;get,
             <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.Cell&gt;&nbsp;results)
               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.html
index a5ccced..12a483c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestHCM.html
@@ -95,7 +95,7 @@
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.89">TestHCM</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.90">TestHCM</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">This class is for testing HBaseConnectionManager features</div>
 </li>
@@ -375,7 +375,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>timeout</h4>
-<pre>public final&nbsp;org.junit.rules.TestRule <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.90">timeout</a></pre>
+<pre>public final&nbsp;org.junit.rules.TestRule <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.91">timeout</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -384,7 +384,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.94">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.95">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -393,7 +393,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.95">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.96">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="TABLE_NAME">
@@ -402,7 +402,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TABLE_NAME</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.96">TABLE_NAME</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.97">TABLE_NAME</a></pre>
 </li>
 </ul>
 <a name="TABLE_NAME1">
@@ -411,7 +411,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TABLE_NAME1</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.98">TABLE_NAME1</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.99">TABLE_NAME1</a></pre>
 </li>
 </ul>
 <a name="TABLE_NAME2">
@@ -420,7 +420,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TABLE_NAME2</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.100">TABLE_NAME2</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.101">TABLE_NAME2</a></pre>
 </li>
 </ul>
 <a name="TABLE_NAME3">
@@ -429,7 +429,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TABLE_NAME3</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.102">TABLE_NAME3</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.103">TABLE_NAME3</a></pre>
 </li>
 </ul>
 <a name="TABLE_NAME4">
@@ -438,7 +438,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TABLE_NAME4</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.104">TABLE_NAME4</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.105">TABLE_NAME4</a></pre>
 </li>
 </ul>
 <a name="FAM_NAM">
@@ -447,7 +447,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>FAM_NAM</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.106">FAM_NAM</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.107">FAM_NAM</a></pre>
 </li>
 </ul>
 <a name="ROW">
@@ -456,7 +456,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>ROW</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.107">ROW</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.108">ROW</a></pre>
 </li>
 </ul>
 <a name="ROW_X">
@@ -465,7 +465,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>ROW_X</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.108">ROW_X</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.109">ROW_X</a></pre>
 </li>
 </ul>
 <a name="_randy">
@@ -474,7 +474,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>_randy</h4>
-<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Random.html?is-external=true" title="class or interface in java.util">Random</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.109">_randy</a></pre>
+<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Random.html?is-external=true" title="class or interface in java.util">Random</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.110">_randy</a></pre>
 </li>
 </ul>
 <a name="syncBlockingFilter">
@@ -483,7 +483,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>syncBlockingFilter</h4>
-<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.545">syncBlockingFilter</a></pre>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.546">syncBlockingFilter</a></pre>
 </li>
 </ul>
 </li>
@@ -500,7 +500,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestHCM</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.89">TestHCM</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.90">TestHCM</a>()</pre>
 </li>
 </ul>
 </li>
@@ -517,7 +517,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.131">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.132">setUpBeforeClass</a>()
                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -529,7 +529,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.138">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.139">tearDownAfterClass</a>()
                                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -541,7 +541,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testClusterConnection</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.143">testClusterConnection</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.144">testClusterConnection</a>()
                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -553,7 +553,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testAdminFactory</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.207">testAdminFactory</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.208">testAdminFactory</a>()
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Naive test to check that HConnection#getAdmin returns a properly constructed HBaseAdmin object</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -566,7 +566,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testClusterStatus</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.217">testClusterStatus</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.218">testClusterStatus</a>()
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -578,7 +578,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testConnectionCloseAllowsInterrupt</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.281">testConnectionCloseAllowsInterrupt</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.282">testConnectionCloseAllowsInterrupt</a>()
                                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test that we can handle connection close: it will trigger a retry, but the calls will
   finish.</div>
@@ -592,7 +592,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testConnectionNotAllowsInterrupt</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.286">testConnectionNotAllowsInterrupt</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.287">testConnectionNotAllowsInterrupt</a>()
                                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -604,7 +604,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testOperationTimeout</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.299">testOperationTimeout</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.300">testOperationTimeout</a>()
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test that an operation can fail if we read the global operation timeout, even if the
  individual timeout is fine. We do that with:
@@ -622,7 +622,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testConnectionClose</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.331">testConnectionClose</a>(boolean&nbsp;allowsInterrupt)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.332">testConnectionClose</a>(boolean&nbsp;allowsInterrupt)
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -634,7 +634,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testConnectionIdle</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.417">testConnectionIdle</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.418">testConnectionIdle</a>()
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test that connection can become idle without breaking everything.</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -647,7 +647,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testConnectionCut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.478">testConnectionCut</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.479">testConnectionCut</a>()
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test that the connection to the dead server is cut immediately when we receive the
   notification.</div>
@@ -661,7 +661,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionCaching</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.576">testRegionCaching</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.577">testRegionCaching</a>()
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test that when we delete a location using the first row of a region
  that we really delete it.</div>
@@ -675,7 +675,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testConnectionManagement</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.764">testConnectionManagement</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.765">testConnectionManagement</a>()
                               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test that Connection or Pool are not closed when managed externally</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -688,7 +688,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testCacheSeqNums</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.783">testCacheSeqNums</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.784">testCacheSeqNums</a>()
                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test that stale cache updates don't override newer cached values.</div>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -701,7 +701,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testClosing</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.826">testClosing</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.827">testClosing</a>()
                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -713,7 +713,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testCreateConnection</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.854">testCreateConnection</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.855">testCreateConnection</a>()
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Trivial test to verify that nobody messes with
  <code>ConnectionFactory.createConnection(Configuration)</code></div>
@@ -727,7 +727,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testConnection</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.869">testConnection</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.870">testConnection</a>()
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">This test checks that one can connect to the cluster with only the
   ZooKeeper quorum set. Other stuff like master address will be read
@@ -742,7 +742,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setNumTries</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.883">setNumTries</a>(org.apache.hadoop.hbase.client.ConnectionImplementation&nbsp;hci,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.884">setNumTries</a>(org.apache.hadoop.hbase.client.ConnectionImplementation&nbsp;hci,
               int&nbsp;newVal)
                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
@@ -755,7 +755,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testMulti</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.896">testMulti</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.897">testMulti</a>()
                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -767,7 +767,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testErrorBackoffTimeCalculation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.1011">testErrorBackoffTimeCalculation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.1012">testErrorBackoffTimeCalculation</a>()
                                      throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
@@ -779,7 +779,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>assertEqualsWithJitter</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.1069">assertEqualsWithJitter</a>(long&nbsp;expected,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.1070">assertEqualsWithJitter</a>(long&nbsp;expected,
                           long&nbsp;actual)</pre>
 </li>
 </ul>
@@ -789,7 +789,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>assertEqualsWithJitter</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.1073">assertEqualsWithJitter</a>(long&nbsp;expected,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.1074">assertEqualsWithJitter</a>(long&nbsp;expected,
                           long&nbsp;actual,
                           long&nbsp;jitterBase)</pre>
 </li>
@@ -800,7 +800,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testConnectionRideOverClusterRestart</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.1079">testConnectionRideOverClusterRestart</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestHCM.html#line.1080">testConnectionRideOverClusterRestart</a>()
                                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/errorhandling/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/errorhandling/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/errorhandling/package-summary.html
index 5d9e152..cca84de 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/errorhandling/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/errorhandling/package-summary.html
@@ -36,7 +36,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/example/package-summary.html">Prev Package</a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/executor/package-summary.html">Next Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html">Next Package</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/errorhandling/package-summary.html" target="_top">Frames</a></li>
@@ -118,7 +118,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/example/package-summary.html">Prev Package</a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/executor/package-summary.html">Next Package</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-summary.html">Next Package</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/errorhandling/package-summary.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/errorhandling/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/errorhandling/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/errorhandling/package-tree.html
index 1f6adae..aeb6a18 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/errorhandling/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/errorhandling/package-tree.html
@@ -36,7 +36,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/example/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/executor/package-tree.html">Next</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/errorhandling/package-tree.html" target="_top">Frames</a></li>
@@ -100,7 +100,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/example/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/executor/package-tree.html">Next</a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/exceptions/package-tree.html">Next</a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/errorhandling/package-tree.html" target="_top">Frames</a></li>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html
index ee363fc..16f504e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceState.html
@@ -43,2273 +43,2227 @@
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.MultiActionResultTooLarge;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.RegionTooBusyException;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.RetryImmediatelyException;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.ServerName;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.TableName;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.security.User;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.zookeeper.KeeperException;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>import javax.annotation.Nullable;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>import java.io.Closeable;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import java.io.IOException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import java.io.InterruptedIOException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import java.net.InetAddress;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import java.net.InetSocketAddress;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import java.util.ArrayList;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import java.util.Date;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import java.util.List;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import java.util.concurrent.BlockingQueue;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import java.util.concurrent.ConcurrentMap;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import java.util.concurrent.ExecutorService;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import java.util.concurrent.TimeUnit;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>/**<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.111"></a>
-<span class="sourceLineNo">112</span>@InterfaceAudience.Private<a name="line.112"></a>
-<span class="sourceLineNo">113</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  private final boolean hostnamesCanChange;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  private final long pause;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private final boolean useMetaReplicas;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private final int numTries;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  final int rpcTimeout;<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>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.131"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ServerName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.TableName;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.security.User;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.zookeeper.KeeperException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>import javax.annotation.Nullable;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>import java.io.Closeable;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import java.io.IOException;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import java.io.InterruptedIOException;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import java.net.InetAddress;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import java.net.InetSocketAddress;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import java.util.ArrayList;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import java.util.Date;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import java.util.List;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import java.util.concurrent.BlockingQueue;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import java.util.concurrent.ConcurrentMap;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import java.util.concurrent.ExecutorService;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import java.util.concurrent.TimeUnit;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>/**<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.103"></a>
+<span class="sourceLineNo">104</span> */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.107"></a>
+<span class="sourceLineNo">108</span>@InterfaceAudience.Private<a name="line.108"></a>
+<span class="sourceLineNo">109</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private final boolean hostnamesCanChange;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  private final long pause;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  private final boolean useMetaReplicas;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private final int numTries;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  final int rpcTimeout;<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private final AsyncProcess asyncProcess;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  // single tracker per connection<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  private final ServerStatisticTracker stats;<a name="line.131"></a>
 <span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private final AsyncProcess asyncProcess;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  // single tracker per connection<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  private final ServerStatisticTracker stats;<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  private volatile boolean closed;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private volatile boolean aborted;<a name="line.138"></a>
+<span class="sourceLineNo">133</span>  private volatile boolean closed;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private volatile boolean aborted;<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // package protected for the tests<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  ClusterStatusListener clusterStatusListener;<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
 <span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>  // package protected for the tests<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  ClusterStatusListener clusterStatusListener;<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private final Object metaRegionLock = new Object();<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private final Object masterAndZKLock = new Object();<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  // thread executor shared by all HTableInterface instances created<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  // by this connection<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private volatile ExecutorService batchPool = null;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  // by this connection<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private volatile boolean cleanupPool = false;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private final Configuration conf;<a name="line.161"></a>
+<span class="sourceLineNo">140</span>  private final Object metaRegionLock = new Object();<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final Object masterAndZKLock = new Object();<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  // thread executor shared by all HTableInterface instances created<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  // by this connection<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private volatile ExecutorService batchPool = null;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  // by this connection<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private volatile boolean cleanupPool = false;<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private final Configuration conf;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  private final TableConfiguration tableConfig;<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final TableConfiguration tableConfig;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  // Client rpc instance.<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private RpcClient rpcClient;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  private final MetaCache metaCache;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private final MetricsConnection metrics;<a name="line.171"></a>
+<span class="sourceLineNo">163</span>  // Client rpc instance.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private RpcClient rpcClient;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final MetaCache metaCache;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  private final MetricsConnection metrics;<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  protected User user;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.171"></a>
 <span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  protected User user;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.173"></a>
 <span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>  private final RetryingCallerInterceptor interceptor;<a name="line.175"></a>
 <span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private final RetryingCallerInterceptor interceptor;<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>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   Registry registry;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private final ClientBackoffPolicy backoffPolicy;<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>   * constructor<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * @param conf Configuration object<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  ConnectionImplementation(Configuration conf,<a name="line.192"></a>
-<span class="sourceLineNo">193</span>                           ExecutorService pool, User user) throws IOException {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    this.conf = conf;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.user = user;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    this.batchPool = pool;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    this.closed = false;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // how many times to try, one more than max *retry* time<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    this.rpcTimeout = conf.getInt(<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        if (nonceGenerator == null) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    } else {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      nonceGenerator = new NoNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      this.metrics = new MetricsConnection(this);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    } else {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      this.metrics = null;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>            ClusterStatusListener.Listener.class);<a name="line.237"></a>
+<span class="sourceLineNo">177</span>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   Registry registry;<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>  private final ClientBackoffPolicy backoffPolicy;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * constructor<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @param conf Configuration object<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  ConnectionImplementation(Configuration conf,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                           ExecutorService pool, User user) throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    this.conf = conf;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    this.user = user;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.batchPool = pool;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    this.closed = false;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // how many times to try, one more than max *retry* time<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.rpcTimeout = conf.getInt(<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (nonceGenerator == null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    } else {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      nonceGenerator = new NoNonceGenerator();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      this.metrics = new MetricsConnection(this);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      this.metrics = null;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.232"></a>
+<span class="sourceLineNo">233</span>            ClusterStatusListener.Listener.class);<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>    try {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      this.registry = setupRegistry();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      retrieveClusterId();<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.registry = setupRegistry();<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      retrieveClusterId();<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>      // Do we publish the status?<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      if (shouldListen) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        if (listenerClass == null) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.248"></a>
-<span class="sourceLineNo">249</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        } else {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.251"></a>
-<span class="sourceLineNo">252</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>                @Override<a name="line.253"></a>
-<span class="sourceLineNo">254</span>                public void newDead(ServerName sn) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>                  clearCaches(sn);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>                  rpcClient.cancelConnections(sn);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>              }, conf, listenerClass);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    } catch (Throwable e) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      // avoid leaks: registry, rpcClient, ...<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      LOG.debug("connection construction failed", e);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      close();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      throw e;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  /**<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param conn The connection for which to replace the generator.<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @return old nonce generator.<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  @VisibleForTesting<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      + cnm.getClass().getName());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    nonceGenerator = cnm;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    return ng;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * Look for an exception we know in the remote exception:<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * - hadoop.ipc wrapped exceptions<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * - nested exceptions<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   *<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   *            ThrottlingException<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @return null if we didn't find the exception, the exception otherwise.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public static Throwable findException(Object exception) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (exception == null || !(exception instanceof Throwable)) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      return null;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Throwable cur = (Throwable) exception;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    while (cur != null) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      if (cur instanceof RegionMovedException || cur instanceof RegionOpeningException<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          || cur instanceof RegionTooBusyException || cur instanceof ThrottlingException<a name="line.301"></a>
-<span class="sourceLineNo">302</span>          || cur instanceof RetryImmediatelyException) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return cur;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      }<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      if (cur instanceof RemoteException) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        RemoteException re = (RemoteException) cur;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        cur = re.unwrapRemoteException(<a name="line.307"></a>
-<span class="sourceLineNo">308</span>            RegionOpeningException.class, RegionMovedException.class,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>            RegionTooBusyException.class);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        if (cur == null) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          cur = re.unwrapRemoteException();<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        // unwrapRemoteException can return the exception given as a parameter when it cannot<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        //  unwrap it. In this case, there is no need to look further<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        // noinspection ObjectEquality<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        if (cur == re) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          return null;<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      } else {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        cur = cur.getCause();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">239</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // Do we publish the status?<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (shouldListen) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        if (listenerClass == null) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.244"></a>
+<span class="sourceLineNo">245</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.247"></a>
+<span class="sourceLineNo">248</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                @Override<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                public void newDead(ServerName sn) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                  clearCaches(sn);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                  rpcClient.cancelConnections(sn);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>              }, conf, listenerClass);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      }<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (Throwable e) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      // avoid leaks: registry, rpcClient, ...<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      LOG.debug("connection construction failed", e);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      close();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      throw e;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * @param conn The connection for which to replace the generator.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * @return old nonce generator.<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  @VisibleForTesting<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      + cnm.getClass().getName());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    nonceGenerator = cnm;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return ng;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    return getTable(TableName.valueOf(tableName));<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    return getTable(TableName.valueOf(tableName));<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>  @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    return getTable(tableName, getBatchPool());<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>  @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    if (params.getTableName() == null) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (params.getPool() == null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<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 null;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  @Override<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return getTable(TableName.valueOf(tableName));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  @Override<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    return getTable(TableName.valueOf(tableName));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return getTable(tableName, getBatchPool());<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    if (params.getTableName() == null) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (params.getPool() == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<a name="line.366"></a>
+<span class="sourceLineNo">323</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<a name="line.331"></a>
+<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>  @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    return new HRegionLocator(tableName, this);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  public Admin getAdmin() throws IOException {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    return new HBaseAdmin(this);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>  @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public MetricsConnection getConnectionMetrics() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return this.metrics;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  private ExecutorService getBatchPool() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (batchPool == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      synchronized (this) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        if (batchPool == null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.353"></a>
+<span class="sourceLineNo">354</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          this.cleanupPool = true;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    return this.batchPool;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    // shared HTable thread executor not yet initialized<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    if (maxThreads == 0) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.366"></a>
 <span class="sourceLineNo">367</span>    }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.369"></a>
+<span class="sourceLineNo">368</span>    if (coreThreads == 0) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<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>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return new HRegionLocator(tableName, this);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  public Admin getAdmin() throws IOException {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    return new HBaseAdmin(this);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>  @Override<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  public MetricsConnection getConnectionMetrics() {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    return this.metrics;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  private ExecutorService getBatchPool() {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    if (batchPool == null) {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      synchronized (this) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        if (batchPool == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.398"></a>
-<span class="sourceLineNo">399</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          this.cleanupPool = true;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      }<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    }<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    return this.batchPool;<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>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    // shared HTable thread executor not yet initialized<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    if (maxThreads == 0) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (coreThreads == 0) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    }<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    if (workQueue == null) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      workQueue =<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.420"></a>
-<span class="sourceLineNo">421</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.421"></a>
-<span class="sourceLineNo">422</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        coreThreads,<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        maxThreads,<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        keepAliveTime,<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        TimeUnit.SECONDS,<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        workQueue,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    if (this.metaLookupPool == null) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      synchronized (this) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (this.metaLookupPool == null) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          //Some of the threads would be used for meta replicas<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          //the queue is full, a new thread will be started<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          this.metaLookupPool = getThreadPool(<a name="line.443"></a>
-<span class="sourceLineNo">444</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.444"></a>
-<span class="sourceLineNo">445</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.445"></a>
-<span class="sourceLineNo">446</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return this.metaLookupPool;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    return batchPool;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
+<span class="sourceLineNo">371</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    if (workQueue == null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      workQueue =<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        coreThreads,<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        maxThreads,<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        keepAliveTime,<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        TimeUnit.SECONDS,<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        workQueue,<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    if (this.metaLookupPool == null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      synchronized (this) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (this.metaLookupPool == null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          //Some of the threads would be used for meta replicas<a name="line.394"></a>
+<span class="sourceLineNo">395</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.395"></a>
+<span class="sourceLineNo">396</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.396"></a>
+<span class="sourceLineNo">397</span>          //the queue is full, a new thread will be started<a name="line.397"></a>
+<span class="sourceLineNo">398</span>          this.metaLookupPool = getThreadPool(<a name="line.398"></a>
+<span class="sourceLineNo">399</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.399"></a>
+<span class="sourceLineNo">400</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.400"></a>
+<span class="sourceLineNo">401</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      }<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return this.metaLookupPool;<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>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    return batchPool;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>  private void shutdownPools() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      shutdownBatchPool(this.batchPool);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    pool.shutdown();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        pool.shutdownNow();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    } catch (InterruptedException e) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      pool.shutdownNow();<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>  /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * @return The cluster registry implementation to use.<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private Registry setupRegistry() throws IOException {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    return RegistryFactory.getRegistry(this);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span>  /**<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   * For tests only.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  @VisibleForTesting<a name="line.446"></a>
+<span class="sourceLineNo">447</span>  RpcClient getRpcClient() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    return rpcClient;<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>   * An identifier that will remain the same for a given connection.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>   */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>  public String toString(){<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    return "hconnection-0x" + Integer.toHexString(hashCode());<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>  protected String clusterId = null;<a name="line.459"></a>
 <span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private void shutdownPools() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      shutdownBatchPool(this.batchPool);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.466"></a>
+<span class="sourceLineNo">461</span>  protected void retrieveClusterId() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    if (clusterId != null) return;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    this.clusterId = this.registry.getClusterId();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    if (clusterId == null) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      clusterId = HConstants.CLUSTER_ID_DEFAULT;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      LOG.debug("clusterid came back null, using default " + clusterId);<a name="line.466"></a>
 <span class="sourceLineNo">467</span>    }<a name="line.467"></a>
 <span class="sourceLineNo">468</span>  }<a name="line.468"></a>
 <span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    pool.shutdown();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        pool.shutdownNow();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    } catch (InterruptedException e) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      pool.shutdownNow();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  /**<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @return The cluster registry implementation to use.<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   */<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  private Registry setupRegistry() throws IOException {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    return RegistryFactory.getRegistry(this);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>  /**<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * For tests only.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   */<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  @VisibleForTesting<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  RpcClient getRpcClient() {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return rpcClient;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * An identifier that will remain the same for a given connection.<a name="line.497"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public Configuration getConfiguration() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return this.conf;<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>  private void checkIfBaseNodeAvailable(ZooKeeperWatcher zkw)<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    throws MasterNotRunningException {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    String errorMsg;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    try {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (ZKUtil.checkExists(zkw, zkw.baseZNode) == -1) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        errorMsg = "The node " + zkw.baseZNode+" is not in ZooKeeper. "<a name="line.480"></a>
+<span class="sourceLineNo">481</span>          + "It should h

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html
index d0040f6..3180076 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.SingleServerRequestRunnable.html
@@ -61,1780 +61,1781 @@
 <span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.TableName;<a name="line.53"></a>
 <span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.backoff.ServerStatistics;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.htrace.Trace;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>import com.google.common.annotations.VisibleForTesting;<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> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * synchronous caller such as HTable.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * &lt;p&gt;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * to track operation progress.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * &lt;/p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * The class manages internally the retries.<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;/p&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;p&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;/p&gt;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * &lt;p&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * retrieving errors from different threads may be not thread safe.<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * arising from older operations.<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * &lt;/p&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * gets as well.<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;/p&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>@InterfaceAudience.Private<a name="line.98"></a>
-<span class="sourceLineNo">099</span>class AsyncProcess {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * this stage.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   */<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      "hbase.client.start.log.errors.counter";<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  /**<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * The context used to wait for results from one submit call.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   *  */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public static interface AsyncRequestFuture {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    public boolean hasError();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /**<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * Return value from a submit that didn't contain any requests.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    final Object[] result = new Object[0];<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public boolean hasError() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      return null;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>    @Override<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      return null;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    @Override<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    public Object[] getResults() {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      return result;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  };<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * the replica calls are launched. See results for details of this process.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private static class ReplicaResultState {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public ReplicaResultState(int callCount) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      this.callCount = callCount;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    int callCount;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    BatchErrors replicaErrors = null;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    @Override<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    public String toString() {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.htrace.Trace;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>import com.google.common.annotations.VisibleForTesting;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * synchronous caller such as HTable.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * &lt;p&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.68"></a>
+<span class="sourceLineNo">069</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * to track operation progress.<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;/p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * The class manages internally the retries.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;/p&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;p&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;/p&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * retrieving errors from different threads may be not thread safe.<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * arising from older operations.<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;/p&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;p&gt;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * gets as well.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/p&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>@InterfaceAudience.Private<a name="line.99"></a>
+<span class="sourceLineNo">100</span>class AsyncProcess {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * this stage.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      "hbase.client.start.log.errors.counter";<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * The context used to wait for results from one submit call.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   *  */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public static interface AsyncRequestFuture {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public boolean hasError();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Return value from a submit that didn't contain any requests.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final Object[] result = new Object[0];<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    public boolean hasError() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      return false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      return null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>    @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return null;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    public Object[] getResults() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      return result;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  };<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   * the replica calls are launched. See results for details of this process.<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private static class ReplicaResultState {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public ReplicaResultState(int callCount) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      this.callCount = callCount;<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>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    int callCount;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    BatchErrors replicaErrors = null;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    public String toString() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  // TODO: many of the fields should be made private<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  protected final long id;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  protected final ClusterConnection connection;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected final RpcRetryingCallerFactory rpcCallerFactory;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  protected final RpcControllerFactory rpcFactory;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  protected final BatchErrors globalErrors;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  protected final ExecutorService pool;<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  protected final AtomicLong tasksInProgress = new AtomicLong(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  protected final ConcurrentMap&lt;byte[], AtomicInteger&gt; taskCounterPerRegion =<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      new ConcurrentSkipListMap&lt;byte[], AtomicInteger&gt;(Bytes.BYTES_COMPARATOR);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected final ConcurrentMap&lt;ServerName, AtomicInteger&gt; taskCounterPerServer =<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      new ConcurrentHashMap&lt;ServerName, AtomicInteger&gt;();<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  // Start configuration settings.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final int startLogErrorsCnt;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  /**<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * The number of tasks simultaneously executed on the cluster.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  protected final int maxTotalConcurrentTasks;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * The number of tasks we run in parallel on a single region.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * With 1 (the default) , we ensure that the ordering of the queries is respected: we don't start<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * a set of operations on a region before the previous one is done. As well, this limits<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * the pressure we put on the region server.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  protected final int maxConcurrentTasksPerRegion;<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * The number of task simultaneously executed on a single region server.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  protected final int maxConcurrentTasksPerServer;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  protected final long pause;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  protected int numTries;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  protected int serverTrackerTimeout;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected int timeout;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  protected long primaryCallTimeoutMicroseconds;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // End configuration settings.<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  protected static class BatchErrors {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final List&lt;Throwable&gt; throwables = new ArrayList&lt;Throwable&gt;();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final List&lt;Row&gt; actions = new ArrayList&lt;Row&gt;();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    private final List&lt;String&gt; addresses = new ArrayList&lt;String&gt;();<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    public synchronized void add(Throwable ex, Row row, ServerName serverName) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (row == null){<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        throw new IllegalArgumentException("row cannot be null. location=" + serverName);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>      throwables.add(ex);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      actions.add(row);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      addresses.add(serverName != null ? serverName.toString() : "null");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public boolean hasErrors() {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return !throwables.isEmpty();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private synchronized RetriesExhaustedWithDetailsException makeException() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      return new RetriesExhaustedWithDetailsException(<a name="line.245"></a>
-<span class="sourceLineNo">246</span>          new ArrayList&lt;Throwable&gt;(throwables),<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          new ArrayList&lt;Row&gt;(actions), new ArrayList&lt;String&gt;(addresses));<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>    public synchronized void clear() {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      throwables.clear();<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      actions.clear();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      addresses.clear();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public synchronized void merge(BatchErrors other) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      throwables.addAll(other.throwables);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      actions.addAll(other.actions);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      addresses.addAll(other.addresses);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  public AsyncProcess(ClusterConnection hc, Configuration conf, ExecutorService pool,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcRetryingCallerFactory rpcCaller, boolean useGlobalErrors,<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      RpcControllerFactory rpcFactory) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    if (hc == null) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      throw new IllegalArgumentException("HConnection cannot be null.");<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>    this.connection = hc;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    this.pool = pool;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    this.globalErrors = useGlobalErrors ? new BatchErrors() : null;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    this.id = COUNTER.incrementAndGet();<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // how many times we could try in total, one more than retry number<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    this.numTries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER) + 1;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    this.timeout = conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    this.primaryCallTimeoutMicroseconds = conf.getInt(PRIMARY_CALL_TIMEOUT_KEY, 10000);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    this.maxTotalConcurrentTasks = conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    this.maxConcurrentTasksPerServer = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERSERVER_TASKS,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERSERVER_TASKS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.maxConcurrentTasksPerRegion = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERREGION_TASKS,<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERREGION_TASKS);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.startLogErrorsCnt =<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        conf.getInt(START_LOG_ERRORS_AFTER_COUNT_KEY, DEFAULT_START_LOG_ERRORS_AFTER_COUNT);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (this.maxTotalConcurrentTasks &lt;= 0) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throw new IllegalArgumentException("maxTotalConcurrentTasks=" + maxTotalConcurrentTasks);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (this.maxConcurrentTasksPerServer &lt;= 0) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      throw new IllegalArgumentException("maxConcurrentTasksPerServer=" +<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          maxConcurrentTasksPerServer);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    if (this.maxConcurrentTasksPerRegion &lt;= 0) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      throw new IllegalArgumentException("maxConcurrentTasksPerRegion=" +<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          maxConcurrentTasksPerRegion);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Server tracker allows us to do faster, and yet useful (hopefully), retries.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // However, if we are too useful, we might fail very quickly due to retry count limit.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // To avoid this, we are going to cheat for now (see HBASE-7659), and calculate maximum<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    // retry time if normal retries were used. Then we will retry until this time runs out.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // If we keep hitting one server, the net effect will be the incremental backoff, and<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    // essentially the same number of retries as planned. If we have to do faster retries,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // we will do more retries in aggregate, but the user will be none the wiser.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    this.serverTrackerTimeout = 0;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (int i = 0; i &lt; this.numTries; ++i) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      serverTrackerTimeout += ConnectionUtils.getPauseTime(this.pause, i);<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>    this.rpcCallerFactory = rpcCaller;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    this.rpcFactory = rpcFactory;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @return pool if non null, otherwise returns this.pool if non null, otherwise throws<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   *         RuntimeException<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  private ExecutorService getPool(ExecutorService pool) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (pool != null) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      return pool;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    if (this.pool != null) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      return this.pool;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    throw new RuntimeException("Neither AsyncProcess nor request have ExecutorService");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  /**<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * See {@link #submit(ExecutorService, TableName, List, boolean, Batch.Callback, boolean)}.<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public &lt;CResult&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback, boolean needResults)<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      throws InterruptedIOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return submit(null, tableName, rows, atLeastOne, callback, needResults);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  /**<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * Extract from the rows list what we can submit. The rows we can not submit are kept in the<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * list. Does not send requests to replicas (not currently used for anything other<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * than streaming puts anyway).<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   *<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * @param pool ExecutorService to use.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * @param tableName The table for which this request is needed.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * @param callback Batch callback. Only called on success (94 behavior).<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * @param needResults Whether results are needed, or can be discarded.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @param rows - the submitted row. Modified by the method: we remove the rows we took.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * @param atLeastOne true if we should submit at least a subset.<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   */<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  public &lt;CResult&gt; AsyncRequestFuture submit(ExecutorService pool, TableName tableName,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      List&lt;? extends Row&gt; rows, boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      boolean needResults) throws InterruptedIOException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (rows.isEmpty()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return NO_REQS_RESULT;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    List&lt;Action&lt;Row&gt;&gt; retainedActions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    long nonceGroup = ng.getNonceGroup(); // Currently, nonce group is per entire client.<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    // Location errors that happen before we decide what requests to take.<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    List&lt;Exception&gt; locationErrors = null;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    List&lt;Integer&gt; locationErrorRows = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    do {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      // Wait until there is at least one slot for a new task.<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      waitForMaximumCurrentTasks(maxTotalConcurrentTasks - 1);<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>      // Remember the previous decisions about regions or region servers we put in the<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      //  final multi.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      Map&lt;Long, Boolean&gt; regionIncluded = new HashMap&lt;Long, Boolean&gt;();<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      Map&lt;ServerName, Boolean&gt; serverIncluded = new HashMap&lt;ServerName, Boolean&gt;();<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>      int posInList = -1;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      Iterator&lt;? extends Row&gt; it = rows.iterator();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      while (it.hasNext()) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        Row r = it.next();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        HRegionLocation loc;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (r == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            throw new IllegalArgumentException("#" + id + ", row cannot be null");<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          // Make sure we get 0-s replica.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          RegionLocations locs = connection.locateRegion(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>              tableName, r.getRow(), true, true, RegionReplicaUtil.DEFAULT_REPLICA_ID);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (locs == null || locs.isEmpty() || locs.getDefaultRegionLocation() == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            throw new IOException("#" + id + ", no location found, aborting submit for"<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                + " tableName=" + tableName + " rowkey=" + Bytes.toStringBinary(r.getRow()));<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          loc = locs.getDefaultRegionLocation();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        } catch (IOException ex) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          locationErrors = new ArrayList&lt;Exception&gt;();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          locationErrorRows = new ArrayList&lt;Integer&gt;();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error("Failed to get region location ", ex);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          // This action failed before creating ars. Retain it, but do not add to submit list.<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          // We will then add it to ars in an already-failed state.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          retainedActions.add(new Action&lt;Row&gt;(r, ++posInList));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          locationErrors.add(ex);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>          locationErrorRows.add(posInList);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          it.remove();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>          break; // Backward compat: we stop considering actions on location error.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>        if (canTakeOperation(loc, regionIncluded, serverIncluded)) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, ++posInList);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>          setNonce(ng, r, action);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          retainedActions.add(action);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          // TODO: replica-get is not supported on this path<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          byte[] regionName = loc.getRegionInfo().getRegionName();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          addAction(loc.getServerName(), regionName, action, actionsByServer, nonceGroup);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          it.remove();<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>    } while (retainedActions.isEmpty() &amp;&amp; atLeastOne &amp;&amp; (locationErrors == null));<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>    if (retainedActions.isEmpty()) return NO_REQS_RESULT;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return submitMultiActions(tableName, retainedActions, nonceGroup, callback, null, needResults,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      locationErrors, locationErrorRows, actionsByServer, pool);<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>  &lt;CResult&gt; AsyncRequestFuture submitMultiActions(TableName tableName,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      List&lt;Action&lt;Row&gt;&gt; retainedActions, long nonceGroup, Batch.Callback&lt;CResult&gt; callback,<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Object[] results, boolean needResults, List&lt;Exception&gt; locationErrors,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      List&lt;Integer&gt; locationErrorRows, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      ExecutorService pool) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      tableName, retainedActions, nonceGroup, pool, callback, results, needResults);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Add location errors if any<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    if (locationErrors != null) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      for (int i = 0; i &lt; locationErrors.size(); ++i) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        int originalIndex = locationErrorRows.get(i);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        Row row = retainedActions.get(originalIndex).getAction();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        ars.manageError(originalIndex, row,<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          Retry.NO_LOCATION_PROBLEM, locationErrors.get(i), null);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    ars.sendMultiAction(actionsByServer, 1, null, false);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return ars;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Helper that is used when grouping the actions per region server.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   *<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param loc - the destination. Must not be null.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @param action - the action to add to the multiaction<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @param actionsByServer the multiaction per server<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param nonceGroup Nonce group.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private static void addAction(ServerName server, byte[] regionName, Action&lt;Row&gt; action,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer, long nonceGroup) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    MultiAction&lt;Row&gt; multiAction = actionsByServer.get(server);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (multiAction == null) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      multiAction = new MultiAction&lt;Row&gt;();<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      actionsByServer.put(server, multiAction);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (action.hasNonce() &amp;&amp; !multiAction.hasNonceGroup()) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      multiAction.setNonceGroup(nonceGroup);<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>    multiAction.add(regionName, action);<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>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Check if we should send new operations to this region or region server.<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * We're taking into account the past decision; if we have already accepted<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * operation on a given region, we accept all operations for this region.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   *<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param loc; the region and the server name we want to use.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @return true if this region is considered as busy.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  protected boolean canTakeOperation(HRegionLocation loc,<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                                     Map&lt;Long, Boolean&gt; regionsIncluded,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                                     Map&lt;ServerName, Boolean&gt; serversIncluded) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    long regionId = loc.getRegionInfo().getRegionId();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    Boolean regionPrevious = regionsIncluded.get(regionId);<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (regionPrevious != null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // We already know what to do with this region.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      return regionPrevious;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span>    Boolean serverPrevious = serversIncluded.get(loc.getServerName());<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    if (Boolean.FALSE.equals(serverPrevious)) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // It's a new region, on a region server that we have already excluded.<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return false;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    AtomicInteger regionCnt = taskCounterPerRegion.get(loc.getRegionInfo().getRegionName());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (regionCnt != null &amp;&amp; regionCnt.get() &gt;= maxConcurrentTasksPerRegion) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Too many tasks on this region already.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      return false;<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>    if (serverPrevious == null) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      // The region is ok, but we need to decide for this region server.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      int newServers = 0; // number of servers we're going to contact so far<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      for (Map.Entry&lt;ServerName, Boolean&gt; kv : serversIncluded.entrySet()) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (kv.getValue()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          newServers++;<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // Do we have too many total tasks already?<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      boolean ok = (newServers + tasksInProgress.get()) &lt; maxTotalConcurrentTasks;<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      if (ok) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>        // If the total is fine, is it ok for this individual server?<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        AtomicInteger serverCnt = taskCounterPerServer.get(loc.getServerName());<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        ok = (serverCnt == null || serverCnt.get() &lt; maxConcurrentTasksPerServer);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      if (!ok) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        serversIncluded.put(loc.getServerName(), Boolean.FALSE);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        return false;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>      serversIncluded.put(loc.getServerName(), Boolean.TRUE);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    } else {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      assert serverPrevious.equals(Boolean.TRUE);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    regionsIncluded.put(regionId, Boolean.TRUE);<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return true;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * See {@link #submitAll(ExecutorService, TableName, List, Batch.Callback, Object[])}.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   */<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(TableName tableName,<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    return submitAll(null, tableName, rows, callback, results);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
-<span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * Submit immediately the list of rows, whatever the server status. Kept for backward<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * compatibility: it allows to be used with the batch interface that return an array of objects.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   *<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * @param pool ExecutorService to use.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * @param tableName name of the table for which the submission is made.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param rows the list of rows.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param callback the callback.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @param results Optional array to return the results thru; backward compat.<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(ExecutorService pool, TableName tableName,<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    List&lt;Action&lt;Row&gt;&gt; actions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.563"></a>
-<span class="sourceLineNo">564</span><a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // The position will be used by the processBatch to match the object array returned.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    int posInList = -1;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    for (Row r : rows) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      posInList++;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (r instanceof Put) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        Put put = (Put) r;<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        if (put.isEmpty()) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          throw new IllegalArgumentException("No columns to insert for #" + (posInList+1)+ " item");<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, posInList);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      setNonce(ng, r, action);<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      actions.add(action);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        tableName, actions, ng.getNonceGroup(), getPool(pool), callback, results, results != null);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ars.groupAndSendMultiAction(actions, 1);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return ars;<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>  private static void setNonce(NonceGenerator ng, Row r, Action&lt;Row&gt; action) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (!(r instanceof Append) &amp;&amp; !(r instanceof Increment)) return;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    action.setNonce(ng.newNonce()); // Action handles NO_NONCE, so it's ok if ng is disabled.<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span><a name="line.590"></a>
-<span class="sourceLineNo">591</span>  /**<a name="line.591"></a>
-<span class="sourceLineNo">592</span>   * The context, and return value, for a single submit/submitAll call.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * Note on how this class (one AP submit) works. Initially, all requests are split into groups<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * by server; request is sent to each server in parallel; the RPC calls are not async so a<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * thread per server is used. Every time some actions fail, regions/locations might have<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * changed, so we re-group them by server and region again and send these groups in parallel<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * too. The result, in case of retries, is a "tree" of threads, with parent exiting after<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * scheduling children. This is why lots of code doesn't require any synchronization.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  protected class AsyncRequestFutureImpl&lt;CResult&gt; implements AsyncRequestFuture {<a name="line.600"></a>
-<span class="sourceLineNo">601</span><a name="line.601"></a>
-<span class="sourceLineNo">602</span>    /**<a name="line.602"></a>
-<span class="sourceLineNo">603</span>     * Runnable (that can be submitted to thread pool) that waits for when it's time<a name="line.603"></a>
-<span class="sourceLineNo">604</span>     * to issue replica calls, finds region replicas, groups the requests by replica and<a name="line.604"></a>
-<span class="sourceLineNo">605</span>     * issues the calls (on separate threads, via sendMultiAction).<a name="line.605"></a>
-<span class="sourceLineNo">606</span>     * This is done on a separate thread because we don't want to wait on user thread for<a name="line.606"></a>
-<span class="sourceLineNo">607</span>     * our asynchronous call, and usually we have to wait before making replica calls.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>     */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    private final class ReplicaCallIssuingRunnable implements Runnable {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      private final long startTime;<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      private final List&lt;Action&lt;Row&gt;&gt; initialActions;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>      public ReplicaCallIssuingRunnable(List&lt;Action&lt;Row&gt;&gt; initialActions, long startTime) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.initialActions = initialActions;<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        this.startTime = startTime;<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>      @Override<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      public void run() {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        boolean done = false;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        if (primaryCallTimeoutMicroseconds &gt; 0) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>          try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>            done = waitUntilDone(startTime * 1000L + primaryCallTimeoutMicroseconds);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          } catch (InterruptedException ex) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>            LOG.error("Replica thread was interrupted - no replica calls: " + ex.getMessage());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            return;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>          }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        if (done) return; // Done within primary timeout<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        List&lt;Action&lt;Row&gt;&gt; unknownLocActions = new ArrayList&lt;Action&lt;Row&gt;&gt;();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        if (replicaGetIndices == null) {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>          for (int i = 0; i &lt; results.length; ++i) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>            addReplicaActions(i, actionsByServer, unknownLocActions);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          }<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        } else {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>          for (int replicaGetIndice : replicaGetIndices) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>            addReplicaActions(replicaGetIndice, actionsByServer, unknownLocActions);<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>        if (!actionsByServer.isEmpty()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          sendMultiAction(actionsByServer, 1, null, unknownLocActions.isEmpty());<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        }<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        if (!unknownLocActions.isEmpty()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>          actionsByServer = new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          for (Action&lt;Row&gt; action : unknownLocActions) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>            addReplicaActionsAgain(action, actionsByServer);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          // Some actions may have completely failed, they are handled inside addAgain.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>          if (!actionsByServer.isEmpty()) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>            sendMultiAction(actionsByServer, 1, null, true);<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>      }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>      /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>       * Add replica actions to action map by server.<a name="line.658"></a>
-<span class="sourceLineNo">659</span>       * @param index Index of the original action.<a name="line.659"></a>
-<span class="sourceLineNo">660</span>       * @param actionsByServer The map by server to add it to.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>       */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      private void addReplicaActions(int index, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.662"></a>
-<span class="sourceLineNo">663</span>          List&lt;Action&lt;Row&gt;&gt; unknownReplicaActions) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>        if (results[index] != null) return; // opportunistic. Never goes from non-null to null.<a name="line.664"></a>
-<span class="sourceLineNo">665</span>        Action&lt;Row&gt; action = initialActions.get(index);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        RegionLocations loc = findAllLocationsOrFail(action, true);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>        if (loc == null) return;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>        HRegionLocation[] locs = loc.getRegionLocations();<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        if (locs.length == 1) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>          LOG.warn("No replicas found for " + action.getAction());<a name="line.670"></a>
-<span class="sourceLineNo">671</span>          return;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        synchronized (replicaResultLock) {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          // Don't run replica calls if the original has finished. We could do it e.g. if<a name="line.674"></a>
-<span class="sourceLineNo">675</span>          // original has already failed before first replica call (unlikely given retries),<a name="line.675"></a>
-<span class="sourceLineNo">676</span>          // but that would require additional synchronization w.r.t. returning to caller.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          if (results[index] != null) return;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // We set the number of calls here. After that any path must call setResult/setError.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          // True even for replicas that are not found - if we refuse to send we MUST set error.<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          results[index] = new ReplicaResultState(locs.length);<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        for (int i = 1; i &lt; locs.length; ++i) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          Action&lt;Row&gt; replicaAction = new Action&lt;Row&gt;(action, i);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          if (locs[i] != null) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>            addAction(locs[i].getServerName(), locs[i].getRegionInfo().getRegionName(),<a name="line.685"></a>
-<span class="sourceLineNo">686</span>                replicaAction, actionsByServer, nonceGroup);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          } else {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>            unknownReplicaActions.add(replicaAction);<a name="line.688"></a>
-<span class="sourceLineNo">689</span>          }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      }<a name="line.691"></a>
-<span class="sourceLineNo">692</span><a name="line.692"></a>
-<span class="sourceLineNo">693</span>      private void addReplicaActionsAgain(<a name="line.693"></a>
-<span class="sourceLineNo">694</span>          Action&lt;Row&gt; action, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        if (action.getReplicaId() == RegionReplicaUtil.DEFAULT_REPLICA_ID) {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          throw new AssertionError("Cannot have default replica here");<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        HRegionLocation loc = getReplicaLocationOrFail(action);<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        if (loc == null) return;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        addAction(loc.getServerName(), loc.getRegionInfo().getRegionName(),<a name="line.700"></a>
-<span class="sourceLineNo">701</span>            action, actionsByServer, nonceGroup);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>    /**<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     * Runnable (that can be submitted to thread pool) that submits MultiAction to a<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * single server. The server call is synchronous, therefore we do it on a thread pool.<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     */<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    private final class SingleServerRequestRunnable implements Runnable {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      private final MultiAction&lt;Row&gt; multiAction;<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      private final int numAttempt;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      private final ServerName server;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>      private SingleServerRequestRunnable(<a name="line.715"></a>
-<span class="sourceLineNo">716</span>          MultiAction&lt;Row&gt; multiAction, int numAttempt, ServerName server,<a name="line.716"></a>
-<span class="sourceLineNo">717</span>          Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>        this.multiAction = multiAction;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        this.numAttempt = numAttempt;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        this.server = server;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        this.callsInProgress = callsInProgress;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>      @Override<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      public void run() {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        MultiResponse res;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        MultiServerCallable&lt;Row&gt; callable = null;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>        try {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>          callable = createCallable(server, tableName, multiAction);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>          try {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>            RpcRetryingCaller&lt;MultiResponse&gt; caller = createCaller(callable);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>            if (callsInProgress != null) callsInProgress.add(callable);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>            res = caller.callWithoutRetries(callable, timeout);<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span>            if (res == null) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>              // Cancelled<a name="line.736"></a>
-<span class="sourceLineNo">737</span>              return;<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>          } catch (IOException e) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            // The service itself failed . It may be an error coming from the communication<a name="line.741"></a>
-<span class="sourceLineNo">742</span>            //   layer, but, as well, a functional error raised by the server.<a name="line.742"></a>
-<span class="sourceLineNo">743</span>            receiveGlobalFailure(multiAction, server, numAttempt, e);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>            return;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          } catch (Throwable t) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>            // This should not happen. Let's log &amp; retry anyway.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>            LOG.error("#" + id + ", Caught throwable while calling. This is unexpected." +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>                " Retrying. Server is " + server + ", tableName=" + tableName, t);<a name="line.748"></a>
-<span class="sourceLineNo">749</span>            receiveGlobalFailure(multiAction, server, numAttempt, t);<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            return;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>          }<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>          // Normal case: we received an answer from the server, and it's not an exception.<a name="line.753"></a>
-<span class="sourceLineNo">754</span>          receiveMultiAction(multiAction, server, res, numAttempt);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>        } catch (Throwable t) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // Something really bad happened. We are on the send thread that will now die.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          LOG.error("Internal AsyncProcess #" + id + " error for "<a name="line.757"></a>
-<span class="sourceLineNo">758</span>              + tableName + " processing for " + server, t);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          throw new RuntimeException(t);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        } finally {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          decTaskCounters(multiAction.getRegions(), server);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>          if (callsInProgress != null &amp;&amp; callable != null) {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>            callsInProgress.remove(callable);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          }<a name="line.764"></a>
-<span class="sourceLineNo">765</span>        }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    private final Batch.Callback&lt;CResult&gt; callback;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    private final BatchErrors errors;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    private final ConnectionImplementation.ServerErrorTracker errorsByServer;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    private final ExecutorService pool;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.773"></a

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html
deleted file mode 100644
index bf27873..0000000
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html
+++ /dev/null
@@ -1,2664 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
-<span class="sourceLineNo">002</span> * 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.ipc;<a name="line.19"></a>
-<span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHORIZATION;<a name="line.21"></a>
-<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.io.ByteArrayInputStream;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.io.ByteArrayOutputStream;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.io.DataOutputStream;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.net.BindException;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.net.InetAddress;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.net.InetSocketAddress;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.net.ServerSocket;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.net.Socket;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.net.SocketException;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.net.UnknownHostException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.nio.ByteBuffer;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.nio.channels.CancelledKeyException;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.nio.channels.Channels;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.nio.channels.ClosedChannelException;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import java.nio.channels.GatheringByteChannel;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import java.nio.channels.ReadableByteChannel;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import java.nio.channels.SelectionKey;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import java.nio.channels.Selector;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import java.nio.channels.ServerSocketChannel;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import java.nio.channels.SocketChannel;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import java.nio.channels.WritableByteChannel;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import java.security.PrivilegedExceptionAction;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import java.util.ArrayList;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import java.util.Arrays;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.util.Collections;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.util.HashMap;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.util.Iterator;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.util.LinkedList;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.util.List;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import java.util.Map;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import java.util.Random;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import java.util.Set;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import java.util.concurrent.ConcurrentLinkedDeque;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import java.util.concurrent.ExecutorService;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import java.util.concurrent.Executors;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import java.util.concurrent.locks.Lock;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import java.util.concurrent.locks.ReentrantLock;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>import javax.security.sasl.Sasl;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import javax.security.sasl.SaslException;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import javax.security.sasl.SaslServer;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.commons.logging.Log;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.commons.logging.LogFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.conf.Configuration;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HConstants;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.Server;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.TableName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.User;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.io.BytesWritable;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.io.IntWritable;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.io.Writable;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.io.WritableUtils;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.util.StringUtils;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.htrace.TraceInfo;<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import com.google.protobuf.BlockingService;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import com.google.protobuf.CodedInputStream;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import com.google.protobuf.Message;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import com.google.protobuf.ServiceException;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import com.google.protobuf.TextFormat;<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>/**<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * An RPC server that hosts protobuf described Services.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> *<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.143"></a>
-<span class="sourceLineNo">144</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * and loops till done.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> *<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.151"></a>
-<span class="sourceLineNo">152</span> * and keep taking while the server is up.<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *<a name="line.153"></a>
-<span class="sourceLineNo">154</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * queue for Responder to pull from and return result to client.<a name="line.155"></a>
-<span class="sourceLineNo">156</span> *<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * @see RpcClientImpl<a name="line.157"></a>
-<span class="sourceLineNo">158</span> */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.159"></a>
-<span class="sourceLineNo">160</span>@InterfaceStability.Evolving<a name="line.160"></a>
-<span class="sourceLineNo">161</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      = new CallQueueTooBigException();<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final boolean authorize;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private boolean isSecurityEnabled;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final byte CURRENT_VERSION = 0;<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>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * How many calls/handler are allowed in the queue.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * The maximum size that we can hold in the RPC queue<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private final IPCUtil ipcUtil;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    Server.class.getName());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected ServiceAuthorizationManager authManager;<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * after the call returns.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  protected final InetSocketAddress bindAddress;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected int port;                             // port we listen on<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private int readThreads;                        // number of read threads<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.210"></a>
-<span class="sourceLineNo">211</span>                                                  // which a client may be<a name="line.211"></a>
-<span class="sourceLineNo">212</span>                                                  // disconnected<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.213"></a>
-<span class="sourceLineNo">214</span>                                                  // connections after which we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>                                                  // will start cleaning up idle<a name="line.215"></a>
-<span class="sourceLineNo">216</span>                                                  // connections<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.217"></a>
-<span class="sourceLineNo">218</span>                                                  // connections to nuke<a name="line.218"></a>
-<span class="sourceLineNo">219</span>                                                  // during a cleanup<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected MetricsHBaseServer metrics;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  protected final Configuration conf;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private int maxQueueSize;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  protected int socketSendBufferSize;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  protected final long purgeTimeout;    // in milliseconds<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  volatile boolean running = true;<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  /**<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * for business by the call to {@link #start()}.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  volatile boolean started = false;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final Counter callQueueSize = new Counter();<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  //maintain a list<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  //of client connections<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  private Listener listener = null;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected Responder responder = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  protected int numConnections = 0;<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /** Default value for above params */<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  private final int warnResponseTime;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  private final int warnResponseSize;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  private final Server server;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private final RpcScheduler scheduler;<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private UserProvider userProvider;<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>  private final BoundedByteBufferPool reservoir;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * the result.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  class Call implements RpcCallContext {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    protected int id;                             // the client's call id<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    protected BlockingService service;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    protected MethodDescriptor md;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    protected RequestHeader header;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    protected Message param;                      // the parameter passed<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // Optional cell data passed outside of protobufs.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    protected CellScanner cellScanner;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    protected Connection connection;              // connection to client<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    protected long timestamp;      // the time received when response is null<a name="line.295"></a>
-<span class="sourceLineNo">296</span>                                   // the time served when response is not null<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>     * Chain of buffers to send as response.<a name="line.298"></a>
-<span class="sourceLineNo">299</span>     */<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    protected BufferChain response;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    protected Responder responder;<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>    protected long size;                          // size of current call<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    protected boolean isError;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    protected TraceInfo tinfo;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    private ByteBuffer cellBlock = null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>    private User user;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    private InetAddress remoteAddress;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    private RpcCallback callback;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private long responseCellSize = 0;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    private long responseBlockSize = 0;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    private boolean retryImmediatelySupported;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.319"></a>
-<span class="sourceLineNo">320</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      this.id = id;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      this.service = service;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      this.md = md;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      this.header = header;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      this.param = param;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      this.cellScanner = cellScanner;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      this.connection = connection;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      this.timestamp = System.currentTimeMillis();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      this.response = null;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      this.responder = responder;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      this.isError = false;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      this.size = size;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      this.tinfo = tinfo;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      this.remoteAddress = remoteAddress;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      this.retryImmediatelySupported =<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          connection == null? null: connection.retryImmediatelySupported;<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.341"></a>
-<span class="sourceLineNo">342</span>     * cleanup.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>     */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    void done() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        // Return buffer to reservoir now we are done with it.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        reservoir.putBuffer(this.cellBlock);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        this.cellBlock = null;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    public String toString() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      return toShortString() + " param: " +<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        " connection: " + connection.toString();<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>    protected RequestHeader getHeader() {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return this.header;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    /*<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     * the payload of a command<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    String toShortString() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      String serviceName = this.connection.service != null ?<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.373"></a>
-<span class="sourceLineNo">374</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      String serviceName = this.connection.service != null ?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      return serviceName + "." + methodName;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      this.response = new BufferChain(response);<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>    protected synchronized void setResponse(Object m, final CellScanner cells,<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        Throwable t, String errorMsg) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      if (this.isError) return;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      if (t != null) this.isError = true;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      BufferChain bc = null;<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      try {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        ResponseHeader.Builder headerBuilder = ResponseHeader.newBuilder();<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // Presume it a pb Message.  Could be null.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        Message result = (Message)m;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        // Call id.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        headerBuilder.setCallId(this.id);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        if (t != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          ExceptionResponse.Builder exceptionBuilder = ExceptionResponse.newBuilder();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          exceptionBuilder.setExceptionClassName(t.getClass().getName());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          exceptionBuilder.setStackTrace(errorMsg);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          exceptionBuilder.setDoNotRetry(t instanceof DoNotRetryIOException);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          if (t instanceof RegionMovedException) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>            // Special casing for this exception.  This is only one carrying a payload.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            // Do this instead of build a generic system for allowing exceptions carry<a name="line.408"></a>
-<span class="sourceLineNo">409</span>            // any kind of payload.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            RegionMovedException rme = (RegionMovedException)t;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>            exceptionBuilder.setHostname(rme.getHostname());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            exceptionBuilder.setPort(rme.getPort());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>          }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          // Set the exception as the result of the method invocation.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          headerBuilder.setException(exceptionBuilder.build());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        // Pass reservoir to buildCellBlock. Keep reference to returne so can add it back to the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        // reservoir when finished. This is hacky and the hack is not contained but benefits are<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // high when we can avoid a big buffer allocation on each rpc.<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        this.cellBlock = ipcUtil.buildCellBlock(this.connection.codec,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          this.connection.compressionCodec, cells, reservoir);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        if (this.cellBlock != null) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          CellBlockMeta.Builder cellBlockBuilder = CellBlockMeta.newBuilder();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          // Presumes the cellBlock bytebuffer has been flipped so limit has total size in it.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          cellBlockBuilder.setLength(this.cellBlock.limit());<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          headerBuilder.setCellBlockMeta(cellBlockBuilder.build());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        Message header = headerBuilder.build();<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>        // Organize the response as a set of bytebuffers rather than collect it all together inside<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        // one big byte array; save on allocations.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        ByteBuffer bbHeader = IPCUtil.getDelimitedMessageAsByteBuffer(header);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        ByteBuffer bbResult = IPCUtil.getDelimitedMessageAsByteBuffer(result);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        int totalSize = bbHeader.capacity() + (bbResult == null? 0: bbResult.limit()) +<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          (this.cellBlock == null? 0: this.cellBlock.limit());<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        ByteBuffer bbTotalSize = ByteBuffer.wrap(Bytes.toBytes(totalSize));<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        bc = new BufferChain(bbTotalSize, bbHeader, bbResult, this.cellBlock);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (connection.useWrap) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          bc = wrapWithSasl(bc);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      } catch (IOException e) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        LOG.warn("Exception while creating response " + e);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      this.response = bc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      // Once a response message is created and set to this.response, this Call can be treated as<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      // done. The Responder thread will do the n/w write of this message back to client.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      if (this.callback != null) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        try {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          this.callback.run();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        } catch (Exception e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          // Don't allow any exception here to kill this handler thread.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          LOG.warn("Exception while running the Rpc Callback.", e);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    private BufferChain wrapWithSasl(BufferChain bc)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      if (!this.connection.useSasl) return bc;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      // Looks like no way around this; saslserver wants a byte array.  I have to make it one.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      // THIS IS A BIG UGLY COPY.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      byte [] responseBytes = bc.getBytes();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      byte [] token;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      // synchronization may be needed since there can be multiple Handler<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      // threads using saslServer to wrap responses.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      synchronized (connection.saslServer) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        token = connection.saslServer.wrap(responseBytes, 0, responseBytes.length);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      if (LOG.isTraceEnabled()) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        LOG.trace("Adding saslServer wrapped token of size " + token.length<a name="line.470"></a>
-<span class="sourceLineNo">471</span>            + " as call response.");<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>      ByteBuffer bbTokenLength = ByteBuffer.wrap(Bytes.toBytes(token.length));<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      ByteBuffer bbTokenBytes = ByteBuffer.wrap(token);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      return new BufferChain(bbTokenLength, bbTokenBytes);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    }<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>    @Override<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    public boolean isClientCellBlockSupported() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return this.connection != null &amp;&amp; this.connection.codec != null;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    @Override<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    public long disconnectSince() {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      if (!connection.channel.isOpen()) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        return System.currentTimeMillis() - timestamp;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      } else {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        return -1L;<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><a name="line.492"></a>
-<span class="sourceLineNo">493</span>    public long getSize() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      return this.size;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>    public long getResponseCellSize() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return responseCellSize;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    public void incrementResponseCellSize(long cellSize) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      responseCellSize += cellSize;<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>    @Override<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    public long getResponseBlockSize() {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      return responseBlockSize;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>    @Override<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    public void incrementResponseBlockSize(long blockSize) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      responseBlockSize += blockSize;<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>    public synchronized void sendResponseIfReady() throws IOException {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.responder.doRespond(this);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public UserGroupInformation getRemoteUser() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      return connection.ugi;<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    }<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>    @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    public User getRequestUser() {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      return user;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    @Override<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    public String getRequestUserName() {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      User user = getRequestUser();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      return user == null? null: user.getShortName();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>    @Override<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    public InetAddress getRemoteAddress() {<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      return remoteAddress;<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>    @Override<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    public VersionInfo getClientVersionInfo() {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      return connection.getVersionInfo();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>    @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    public synchronized void setCallBack(RpcCallback callback) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.callback = callback;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    @Override<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    public boolean isRetryImmediatelySupported() {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      return retryImmediatelySupported;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<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>  /** Listens on the socket. Creates jobs for the handler threads*/<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private class Listener extends Thread {<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    private ServerSocketChannel acceptChannel = null; //the accept channel<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private Selector selector = null; //the selector that we use for the server<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    private Reader[] readers = null;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    private int currentReader = 0;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    private Random rand = new Random();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    private long lastCleanupRunTime = 0; //the last time when a cleanup connec-<a name="line.563"></a>
-<span class="sourceLineNo">564</span>                                         //-tion (for idle connections) ran<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    private long cleanupInterval = 10000; //the minimum interval between<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                                          //two cleanup runs<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    private int backlogLength;<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>    private ExecutorService readPool;<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>    public Listener(final String name) throws IOException {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      super(name);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      backlogLength = conf.getInt("hbase.ipc.server.listen.queue.size", 128);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      // Create a new server socket and set to non blocking mode<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      acceptChannel = ServerSocketChannel.open();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      acceptChannel.configureBlocking(false);<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Bind the server socket to the binding addrees (can be different from the default interface)<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      bind(acceptChannel.socket(), bindAddress, backlogLength);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      port = acceptChannel.socket().getLocalPort(); //Could be an ephemeral port<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      address = (InetSocketAddress)acceptChannel.socket().getLocalSocketAddress();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      // create a selector;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      selector= Selector.open();<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>      readers = new Reader[readThreads];<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      readPool = Executors.newFixedThreadPool(readThreads,<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        new ThreadFactoryBuilder().setNameFormat(<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          "RpcServer.reader=%d,bindAddress=" + bindAddress.getHostName() +<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          ",port=" + port).setDaemon(true).build());<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      for (int i = 0; i &lt; readThreads; ++i) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        Reader reader = new Reader();<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        readers[i] = reader;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        readPool.execute(reader);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      LOG.info(getName() + ": started " + readThreads + " reader(s) listening on port=" + port);<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>      // Register accepts on the server socket with the selector.<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      acceptChannel.register(selector, SelectionKey.OP_ACCEPT);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.setName("RpcServer.listener,port=" + port);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      this.setDaemon(true);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span>    private class Reader implements Runnable {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>      private volatile boolean adding = false;<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      private final Selector readSelector;<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>      Reader() throws IOException {<a name="line.608"></a>
-<span class="sourceLineNo">609</span>        this.readSelector = Selector.open();<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      }<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      @Override<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      public void run() {<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        try {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>          doRunLoop();<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        } finally {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>          try {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>            readSelector.close();<a name="line.617"></a>
-<span class="sourceLineNo">618</span>          } catch (IOException ioe) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>            LOG.error(getName() + ": error closing read selector in " + getName(), ioe);<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><a name="line.623"></a>
-<span class="sourceLineNo">624</span>      private synchronized void doRunLoop() {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        while (running) {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>          try {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>            readSelector.select();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>            while (adding) {<a name="line.628"></a>
-<span class="sourceLineNo">629</span>              this.wait(1000);<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>            Iterator&lt;SelectionKey&gt; iter = readSelector.selectedKeys().iterator();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>            while (iter.hasNext()) {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>              SelectionKey key = iter.next();<a name="line.634"></a>
-<span class="sourceLineNo">635</span>              iter.remove();<a name="line.635"></a>
-<span class="sourceLineNo">636</span>              if (key.isValid()) {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>                if (key.isReadable()) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>                  doRead(key);<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>          } catch (InterruptedException e) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>            LOG.debug("Interrupted while sleeping");<a name="line.643"></a>
-<span class="sourceLineNo">644</span>            return;<a name="line.644"></a>
-<span class="sourceLineNo">645</span>          } catch (IOException ex) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>            LOG.info(getName() + ": IOException in Reader", ex);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          }<a name="line.647"></a>
-<span class="sourceLineNo">648</span>        }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      }<a name="line.649"></a>
-<span class="sourceLineNo">650</span><a name="line.650"></a>
-<span class="sourceLineNo">651</span>      /**<a name="line.651"></a>
-<span class="sourceLineNo">652</span>       * This gets reader into the state that waits for the new channel<a name="line.652"></a>
-<span class="sourceLineNo">653</span>       * to be registered with readSelector. If it was waiting in select()<a name="line.653"></a>
-<span class="sourceLineNo">654</span>       * the thread will be woken up, otherwise whenever select() is called<a name="line.654"></a>
-<span class="sourceLineNo">655</span>       * it will return even if there is nothing to read and wait<a name="line.655"></a>
-<span class="sourceLineNo">656</span>       * in while(adding) for finishAdd call<a name="line.656"></a>
-<span class="sourceLineNo">657</span>       */<a name="line.657"></a>
-<span class="sourceLineNo">658</span>      public void startAdd() {<a name="line.658"></a>
-<span class="sourceLineNo">659</span>        adding = true;<a name="line.659"></a>
-<span class="sourceLineNo">660</span>        readSelector.wakeup();<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>      public synchronized SelectionKey registerChannel(SocketChannel channel)<a name="line.663"></a>
-<span class="sourceLineNo">664</span>        throws IOException {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>        return channel.register(readSelector, SelectionKey.OP_READ);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>      public synchronized void finishAdd() {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        adding = false;<a name="line.669"></a>
-<span class="sourceLineNo">670</span>        this.notify();<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      }<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    }<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>    /** cleanup connections from connectionList. Choose a random range<a name="line.674"></a>
-<span class="sourceLineNo">675</span>     * to scan and also have a limit on the number of the connections<a name="line.675"></a>
-<span class="sourceLineNo">676</span>     * that will be cleanedup per run. The criteria for cleanup is the time<a name="line.676"></a>
-<span class="sourceLineNo">677</span>     * for which the connection was idle. If 'force' is true then all<a name="line.677"></a>
-<span class="sourceLineNo">678</span>     * connections will be looked at for the cleanup.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>     * @param force all connections will be looked at for cleanup<a name="line.679"></a>
-<span class="sourceLineNo">680</span>     */<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    private void cleanupConnections(boolean force) {<a name="line.681"></a>
-<span class="sourceLineNo">682</span>      if (force || numConnections &gt; thresholdIdleConnections) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>        long currentTime = System.currentTimeMillis();<a name="line.683"></a>
-<span class="sourceLineNo">684</span>        if (!force &amp;&amp; (currentTime - lastCleanupRunTime) &lt; cleanupInterval) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          return;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>        }<a name="line.686"></a>
-<span class="sourceLineNo">687</span>        int start = 0;<a name="line.687"></a>
-<span class="sourceLineNo">688</span>        int end = numConnections - 1;<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        if (!force) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>          start = rand.nextInt() % numConnections;<a name="line.690"></a>
-<span class="sourceLineNo">691</span>          end = rand.nextInt() % numConnections;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>          int temp;<a name="line.692"></a>
-<span class="sourceLineNo">693</span>          if (end &lt; start) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>            temp = start;<a name="line.694"></a>
-<span class="sourceLineNo">695</span>            start = end;<a name="line.695"></a>
-<span class="sourceLineNo">696</span>            end = temp;<a name="line.696"></a>
-<span class="sourceLineNo">697</span>          }<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        }<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        int i = start;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        int numNuked = 0;<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        while (i &lt;= end) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>          Connection c;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>          synchronized (connectionList) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>            try {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>              c = connectionList.get(i);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>            } catch (Exception e) {return;}<a name="line.706"></a>
-<span class="sourceLineNo">707</span>          }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>          if (c.timedOut(currentTime)) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>            if (LOG.isDebugEnabled())<a name="line.709"></a>
-<span class="sourceLineNo">710</span>              LOG.debug(getName() + ": disconnecting client " + c.getHostAddress());<a name="line.710"></a>
-<span class="sourceLineNo">711</span>            closeConnection(c);<a name="line.711"></a>
-<span class="sourceLineNo">712</span>            numNuked++;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>            end--;<a name="line.713"></a>
-<span class="sourceLineNo">714</span>            //noinspection UnusedAssignment<a name="line.714"></a>
-<span class="sourceLineNo">715</span>            c = null;<a name="line.715"></a>
-<span class="sourceLineNo">716</span>            if (!force &amp;&amp; numNuked == maxConnectionsToNuke) break;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>          }<a name="line.717"></a>
-<span class="sourceLineNo">718</span>          else i++;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        }<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        lastCleanupRunTime = System.currentTimeMillis();<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      }<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>    @Override<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.725"></a>
-<span class="sourceLineNo">726</span>      justification="selector access is not synchronized; seems fine but concerned changing " +<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        "it will have per impact")<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    public void run() {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      LOG.info(getName() + ": starting");<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      while (running) {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>        SelectionKey key = null;<a name="line.731"></a>
-<span class="sourceLineNo">732</span>        try {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>          selector.select(); // FindBugs IS2_INCONSISTENT_SYNC<a name="line.733"></a>
-<span class="sourceLineNo">734</span>          Iterator&lt;SelectionKey&gt; iter = selector.selectedKeys().iterator();<a name="line.734"></a>
-<span class="sourceLineNo">735</span>          while (iter.hasNext()) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>            key = iter.next();<a name="line.736"></a>
-<span class="sourceLineNo">737</span>            iter.remove();<a name="line.737"></a>
-<span class="sourceLineNo">738</span>            try {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>              if (key.isValid()) {<a name="line.739"></a>
-<span class="sourceLineNo">740</span>                if (key.isAcceptable())<a name="line.740"></a>
-<span class="sourceLineNo">741</span>                  doAccept(key);<a name="line.741"></a>
-<span class="sourceLineNo">742</span>              }<a name="line.742"></a>
-<span class="sourceLineNo">743</span>            } catch (IOException ignored) {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>              if (LOG.isTraceEnabled()) LOG.trace("ignored", ignored);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>            }<a name="line.745"></a>
-<span class="sourceLineNo">746</span>            key = null;<a name="line.746"></a>
-<span class="sourceLineNo">747</span>          }<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        } catch (OutOfMemoryError e) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>          if (errorHandler != null) {<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            if (errorHandler.checkOOME(e)) {<a name="line.750"></a>
-<span class="sourceLineNo">751</span>              LOG.info(getName() + ": exiting on OutOfMemoryError");<a name="line.751"></a>
-<span class="sourceLineNo">752</span>              closeCurrentConnection(key, e);<a name="line.752"></a>
-<span class="sourceLineNo">753</span>              cleanupConnections(true);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>              return;<a name="line.754"></a>
-<span class="sourceLineNo">755</span>            }<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          } else {<a name="line.756"></a>
-<span class="sourceLineNo">757</span>            // we can run out of memory if we have too many threads<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            // log the event and sleep for a minute and give<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            // some thread(s) a chance to finish<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            LOG.warn(getName() + ": OutOfMemoryError in server select", e);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            closeCurrentConnection(key, e);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            cleanupConnections(true);<a name="line.762"></a>
-<span class="sourceLineNo">763</span>            try {<a name="line.763"></a>
-<span class="sourceLineNo">764</span>              Thread.sleep(60000);<a name="line.764"></a>
-<span class="sourceLineNo">765</span>            } catch (InterruptedException ex) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span>              LOG.debug("Interrupted while sleeping");<a name="line.766"></a>
-<span class="sourceLineNo">767</span>              return;<a name="line.767"></a>
-<span class="sourceLineNo">768</span>            }<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          }<a name="line.769"></a>
-<span class="sourceLineNo">770</span>        } catch (Exception e) {<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          closeCurrentConnection(key, e);<a name="line.771"></a>
-<span class="sourceLineNo">772</span>        }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>        cleanupConnections(false);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>      }<a name="line.774"></a>
-<span class="sourceLineNo">775</span><a name="line.775"></a>
-<span class="sourceLineNo">776</span>      LOG.info(getName() + ": stopping");<a name="line.776"></a>
-<span class="sourceLineNo">777</span><a name="line.777"></a>
-<span class="sourceLineNo">778</span>      synchronized (this) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        try {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>          acceptChannel.close();<a name="line.780"></a>
-<span class="sourceLineNo">781</span>          selector.close();<a name="line.781"></a>
-<span class="sourceLineNo">782</span>        } catch (IOException ignored) {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>          if (LOG.isTraceEnabled()) LOG.trace("ignored", ignored);<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        }<a name="line.784"></a>
-<span class="sourceLineNo">785</span><a name="line.785"></a>
-<span class="sourceLineNo">786</span>        selector= null;<a name="line.786"></a>
-<span class="sourceLineNo">787</span>        acceptChannel= null;<a name="line.787"></a>
-<span class="sourceLineNo">788</span><a name="line.788"></a>
-<span class="sourceLineNo">789</span>        // clean up all connections<a name="line.789"></a>
-<span class="sourceLineNo">790</span>        while (!connectionList.isEmpty()) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>          closeConnection(connectionList.remove(0));<a name="line.791"></a>
-<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
-<span class="sourceLineNo">793</span>      }<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    }<a name="line.794"></a>
-<span class="sourceLineNo">795</span><a name="line.795"></a>
-<span class="sourceLineNo">796</span>    private void closeCurrentConnection(SelectionKey key, Throwable e) {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      if (key != null) {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>        Connection c = (Connection)key.attachment();<a name="line.798"></a>
-<span class="sourceLineNo">799</span>        if (c != null) {<a name="line.799"></a>
-<span class="sourceLineNo">800</span>          if (LOG.isDebugEnabled()) {<a name="line.800"></a>
-<span class="sourceLineNo">801</span>            LOG.debug(getName() + ": disconnecting client " + c.getHostAddress() +<a name="line.801"></a>
-<span class="sourceLineNo">802</span>                (e != null ? " on error " + e.getMessage() : ""));<a name="line.802"></a>
-<span class="sourceLineNo">803</span>          }<a name="line.803"></a>
-<span class="sourceLineNo">804</span>          closeConnection(c);<a name="line.804"></a>
-<span class="sourceLineNo">805</span>          key.attach(null);<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        }<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    }<a name="line.808"></a>
-<span class="sourceLineNo">809</span><a name="line.809"></a>
-<span class="sourceLineNo">810</span>    InetSocketAddress getAddress() {<a name="line.810"></a>
-<span class="sourceLineNo">811</span>      return address;<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    }<a name="line.812"></a>
-<span class="sourceLineNo">813</span><a name="line.813"></a>
-<span class="sourceLineNo">814</span>    void doAccept(SelectionKey key) throws IOException, OutOfMemoryError {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>      Connection c;<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      ServerSocketChannel server = (ServerSocketChannel) key.channel();<a name="line.816"></a>
-<span class="sourceLineNo">817</span><a name="line.817"></a>
-<span class="sourceLineNo">818</span>      SocketChannel channel;<a name="line.818"></a>
-<span class="sourceLineNo">819</span>      while ((channel = server.accept()) != null) {<a name="line.819"></a>
-<span class="sourceLineNo">820</span>        try {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>          channel.configureBlocking(false);<a name="line.821"></a>
-<span class="sourceLineNo">822</span>          channel.socket().setTcpNoDelay(tcpNoDelay);<a name="line.822"></a>
-<span class="sourceLineNo">823</span>          channel.socket().setKeepAlive(tcpKeepAlive);<a name="line.823"></a>
-<span class="sourceLineNo">824</span>        } catch (IOException ioe) {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>          channel.close();<a name="line.825"></a>
-<span class="sourceLineNo">826</span>          throw ioe;<a name="line.826"></a>
-<span class="sourceLineNo">827</span>        }<a name="line.827"></a>
-<span class="sourceLineNo">828</span><a name="line.828"></a>
-<span class="sourceLineNo">829</span>        Reader reader = getReader();<a name="line.829"></a>
-<span class="sourceLineNo">830</span>        try {<a name="line.830"></a>
-<span class="sourceLineNo">831</span>          reader.startAdd();<a name="line.831"></a>
-<span class="sourceLineNo">832</span>          SelectionKey readKey = reader.registerChannel(channel);<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          c = getConnection(channel, System.currentTimeMillis());<a name="line.833"></a>
-<span class="sourceLineNo">834</span>          readKey.attach(c);<a name="line.834"></a>
-<span class="sourceLineNo">835</span>          synchronized (connectionList) {<a name="line.835"></a>
-<span class="sourceLineNo">836</span>            connectionList.add(numConnections, c);<a name="line.836"></a>
-<span class="sourceLineNo">837</span>            numConnections++;<a name="line.837"></a>
-<span class="sourceLineNo">838</span>          }<a name="line.838"></a>
-<span class="sourceLineNo">839</span>          if (LOG.isDebugEnabled())<a name="line.839"></a>
-<span class="sourceLineNo">840</span>            LOG.debug(getName() + ": connection from " + c.toString() +<a name="line.840"></a>
-<span class="sourceLineNo">841</span>                "; # active connections: " + numConnections);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>        } finally {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>          reader.finishAdd();<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><a name="line.847"></a>
-<span class="sourceLineNo">848</span>    void doRead(SelectionKey key) throws InterruptedException {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      int count;<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      Connection c = (Connection) key.attachment();<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      if (c == null) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        return;<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
-<span class="sourceLineNo">854</span>      c.setLastContact(System.currentTimeMillis());<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      try {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        count = c.readAndProcess();<a name="line.856"></a>
-<span class="sourceLineNo">857</span><a name="line.857"></a>
-<span class="sourceLineNo">858</span>        if (count &gt; 0) {<a name="line.858"></a>
-<span class="sourceLineNo">859</span>          c.setLastContact(System.currentTimeMillis());<a name="line.859"></a>
-<span class="sourceLineNo">860</span>        }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span>      } catch (InterruptedException ieo) {<a name="line.862"></a>
-<span class="sourceLineNo">863</span>        throw ieo;<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      } catch (Exception e) {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>        if (LOG.isDebugEnabled()) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>          LOG.debug(getName() + ": Caught exception while reading:" + e.getMessage());<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        }<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        count = -1; //so that the (count &lt; 0) block is executed<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      if (count &lt; 0) {<a name="line.870"></a>
-<span class="sourceLineNo">871</span>        if (LOG.isDebugEnabled()) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>          LOG.debug(getName() + ": DISCONNECTING client " + c.toString() +<a name="line.872"></a>
-<span class="sourceLineNo">873</span>              " because read count=" + count +<a name="line.873"></a>
-<span class="sourceLineNo">874</span>              ". Number of active connections: " + numConnections);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        }<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        closeConnection(c);<a name="line.876"></a>
-<span class="sourceLineNo">877</span>      }<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    }<a name="line.878"></a>
-<span class="sourceLineNo">879</span><a name="line.879"></a>
-<span class="sourceLineNo">880</span>    synchronized void doStop() {<a name="line.880"></a>
-<span class="sourceLineNo">881</span>      if (selector != null) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>        selector.wakeup();<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        Thread.yield();<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      }<a name="line.884"></a>
-<span class="sourceLineNo">885</span>      if (acceptChannel != null) {<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        try {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>          acceptChannel.socket().close();<a name="line.887"></a>
-<span class="sourceLineNo">888</span>        } catch (IOException e) {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>          LOG.info(getName() + ": exception in closing listener socket. " + e);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
-<span class="sourceLineNo">891</span>      }<a name="

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html
index d0040f6..3180076 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html
@@ -61,1780 +61,1781 @@
 <span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.TableName;<a name="line.53"></a>
 <span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.backoff.ServerStatistics;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.htrace.Trace;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>import com.google.common.annotations.VisibleForTesting;<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> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * synchronous caller such as HTable.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * &lt;p&gt;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * to track operation progress.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * &lt;/p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * The class manages internally the retries.<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;/p&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;p&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;/p&gt;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * &lt;p&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * retrieving errors from different threads may be not thread safe.<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * arising from older operations.<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * &lt;/p&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * gets as well.<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;/p&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>@InterfaceAudience.Private<a name="line.98"></a>
-<span class="sourceLineNo">099</span>class AsyncProcess {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * this stage.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   */<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      "hbase.client.start.log.errors.counter";<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  /**<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * The context used to wait for results from one submit call.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   *  */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public static interface AsyncRequestFuture {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    public boolean hasError();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /**<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * Return value from a submit that didn't contain any requests.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    final Object[] result = new Object[0];<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public boolean hasError() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      return null;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>    @Override<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      return null;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    @Override<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    public Object[] getResults() {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      return result;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  };<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * the replica calls are launched. See results for details of this process.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private static class ReplicaResultState {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public ReplicaResultState(int callCount) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      this.callCount = callCount;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    int callCount;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    BatchErrors replicaErrors = null;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    @Override<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    public String toString() {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.htrace.Trace;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>import com.google.common.annotations.VisibleForTesting;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * synchronous caller such as HTable.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * &lt;p&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.68"></a>
+<span class="sourceLineNo">069</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * to track operation progress.<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;/p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * The class manages internally the retries.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;/p&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;p&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;/p&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * retrieving errors from different threads may be not thread safe.<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * arising from older operations.<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;/p&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;p&gt;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * gets as well.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/p&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>@InterfaceAudience.Private<a name="line.99"></a>
+<span class="sourceLineNo">100</span>class AsyncProcess {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * this stage.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      "hbase.client.start.log.errors.counter";<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * The context used to wait for results from one submit call.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   *  */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public static interface AsyncRequestFuture {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public boolean hasError();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Return value from a submit that didn't contain any requests.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final Object[] result = new Object[0];<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    public boolean hasError() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      return false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      return null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>    @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return null;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    public Object[] getResults() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      return result;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  };<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   * the replica calls are launched. See results for details of this process.<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private static class ReplicaResultState {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public ReplicaResultState(int callCount) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      this.callCount = callCount;<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>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    int callCount;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    BatchErrors replicaErrors = null;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    public String toString() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  // TODO: many of the fields should be made private<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  protected final long id;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  protected final ClusterConnection connection;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected final RpcRetryingCallerFactory rpcCallerFactory;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  protected final RpcControllerFactory rpcFactory;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  protected final BatchErrors globalErrors;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  protected final ExecutorService pool;<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  protected final AtomicLong tasksInProgress = new AtomicLong(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  protected final ConcurrentMap&lt;byte[], AtomicInteger&gt; taskCounterPerRegion =<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      new ConcurrentSkipListMap&lt;byte[], AtomicInteger&gt;(Bytes.BYTES_COMPARATOR);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected final ConcurrentMap&lt;ServerName, AtomicInteger&gt; taskCounterPerServer =<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      new ConcurrentHashMap&lt;ServerName, AtomicInteger&gt;();<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  // Start configuration settings.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final int startLogErrorsCnt;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  /**<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * The number of tasks simultaneously executed on the cluster.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  protected final int maxTotalConcurrentTasks;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * The number of tasks we run in parallel on a single region.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * With 1 (the default) , we ensure that the ordering of the queries is respected: we don't start<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * a set of operations on a region before the previous one is done. As well, this limits<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * the pressure we put on the region server.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  protected final int maxConcurrentTasksPerRegion;<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * The number of task simultaneously executed on a single region server.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  protected final int maxConcurrentTasksPerServer;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  protected final long pause;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  protected int numTries;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  protected int serverTrackerTimeout;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected int timeout;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  protected long primaryCallTimeoutMicroseconds;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // End configuration settings.<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  protected static class BatchErrors {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final List&lt;Throwable&gt; throwables = new ArrayList&lt;Throwable&gt;();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final List&lt;Row&gt; actions = new ArrayList&lt;Row&gt;();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    private final List&lt;String&gt; addresses = new ArrayList&lt;String&gt;();<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    public synchronized void add(Throwable ex, Row row, ServerName serverName) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (row == null){<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        throw new IllegalArgumentException("row cannot be null. location=" + serverName);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>      throwables.add(ex);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      actions.add(row);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      addresses.add(serverName != null ? serverName.toString() : "null");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public boolean hasErrors() {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return !throwables.isEmpty();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private synchronized RetriesExhaustedWithDetailsException makeException() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      return new RetriesExhaustedWithDetailsException(<a name="line.245"></a>
-<span class="sourceLineNo">246</span>          new ArrayList&lt;Throwable&gt;(throwables),<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          new ArrayList&lt;Row&gt;(actions), new ArrayList&lt;String&gt;(addresses));<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>    public synchronized void clear() {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      throwables.clear();<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      actions.clear();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      addresses.clear();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public synchronized void merge(BatchErrors other) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      throwables.addAll(other.throwables);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      actions.addAll(other.actions);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      addresses.addAll(other.addresses);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  public AsyncProcess(ClusterConnection hc, Configuration conf, ExecutorService pool,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcRetryingCallerFactory rpcCaller, boolean useGlobalErrors,<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      RpcControllerFactory rpcFactory) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    if (hc == null) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      throw new IllegalArgumentException("HConnection cannot be null.");<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>    this.connection = hc;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    this.pool = pool;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    this.globalErrors = useGlobalErrors ? new BatchErrors() : null;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    this.id = COUNTER.incrementAndGet();<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // how many times we could try in total, one more than retry number<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    this.numTries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER) + 1;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    this.timeout = conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    this.primaryCallTimeoutMicroseconds = conf.getInt(PRIMARY_CALL_TIMEOUT_KEY, 10000);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    this.maxTotalConcurrentTasks = conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    this.maxConcurrentTasksPerServer = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERSERVER_TASKS,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERSERVER_TASKS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.maxConcurrentTasksPerRegion = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERREGION_TASKS,<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERREGION_TASKS);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.startLogErrorsCnt =<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        conf.getInt(START_LOG_ERRORS_AFTER_COUNT_KEY, DEFAULT_START_LOG_ERRORS_AFTER_COUNT);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (this.maxTotalConcurrentTasks &lt;= 0) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throw new IllegalArgumentException("maxTotalConcurrentTasks=" + maxTotalConcurrentTasks);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (this.maxConcurrentTasksPerServer &lt;= 0) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      throw new IllegalArgumentException("maxConcurrentTasksPerServer=" +<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          maxConcurrentTasksPerServer);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    if (this.maxConcurrentTasksPerRegion &lt;= 0) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      throw new IllegalArgumentException("maxConcurrentTasksPerRegion=" +<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          maxConcurrentTasksPerRegion);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Server tracker allows us to do faster, and yet useful (hopefully), retries.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // However, if we are too useful, we might fail very quickly due to retry count limit.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // To avoid this, we are going to cheat for now (see HBASE-7659), and calculate maximum<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    // retry time if normal retries were used. Then we will retry until this time runs out.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // If we keep hitting one server, the net effect will be the incremental backoff, and<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    // essentially the same number of retries as planned. If we have to do faster retries,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // we will do more retries in aggregate, but the user will be none the wiser.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    this.serverTrackerTimeout = 0;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (int i = 0; i &lt; this.numTries; ++i) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      serverTrackerTimeout += ConnectionUtils.getPauseTime(this.pause, i);<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>    this.rpcCallerFactory = rpcCaller;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    this.rpcFactory = rpcFactory;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @return pool if non null, otherwise returns this.pool if non null, otherwise throws<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   *         RuntimeException<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  private ExecutorService getPool(ExecutorService pool) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (pool != null) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      return pool;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    if (this.pool != null) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      return this.pool;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    throw new RuntimeException("Neither AsyncProcess nor request have ExecutorService");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  /**<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * See {@link #submit(ExecutorService, TableName, List, boolean, Batch.Callback, boolean)}.<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public &lt;CResult&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback, boolean needResults)<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      throws InterruptedIOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return submit(null, tableName, rows, atLeastOne, callback, needResults);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  /**<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * Extract from the rows list what we can submit. The rows we can not submit are kept in the<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * list. Does not send requests to replicas (not currently used for anything other<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * than streaming puts anyway).<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   *<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * @param pool ExecutorService to use.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * @param tableName The table for which this request is needed.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * @param callback Batch callback. Only called on success (94 behavior).<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * @param needResults Whether results are needed, or can be discarded.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @param rows - the submitted row. Modified by the method: we remove the rows we took.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * @param atLeastOne true if we should submit at least a subset.<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   */<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  public &lt;CResult&gt; AsyncRequestFuture submit(ExecutorService pool, TableName tableName,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      List&lt;? extends Row&gt; rows, boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      boolean needResults) throws InterruptedIOException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (rows.isEmpty()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return NO_REQS_RESULT;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    List&lt;Action&lt;Row&gt;&gt; retainedActions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    long nonceGroup = ng.getNonceGroup(); // Currently, nonce group is per entire client.<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    // Location errors that happen before we decide what requests to take.<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    List&lt;Exception&gt; locationErrors = null;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    List&lt;Integer&gt; locationErrorRows = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    do {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      // Wait until there is at least one slot for a new task.<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      waitForMaximumCurrentTasks(maxTotalConcurrentTasks - 1);<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>      // Remember the previous decisions about regions or region servers we put in the<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      //  final multi.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      Map&lt;Long, Boolean&gt; regionIncluded = new HashMap&lt;Long, Boolean&gt;();<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      Map&lt;ServerName, Boolean&gt; serverIncluded = new HashMap&lt;ServerName, Boolean&gt;();<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>      int posInList = -1;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      Iterator&lt;? extends Row&gt; it = rows.iterator();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      while (it.hasNext()) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        Row r = it.next();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        HRegionLocation loc;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (r == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            throw new IllegalArgumentException("#" + id + ", row cannot be null");<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          // Make sure we get 0-s replica.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          RegionLocations locs = connection.locateRegion(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>              tableName, r.getRow(), true, true, RegionReplicaUtil.DEFAULT_REPLICA_ID);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (locs == null || locs.isEmpty() || locs.getDefaultRegionLocation() == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            throw new IOException("#" + id + ", no location found, aborting submit for"<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                + " tableName=" + tableName + " rowkey=" + Bytes.toStringBinary(r.getRow()));<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          loc = locs.getDefaultRegionLocation();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        } catch (IOException ex) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          locationErrors = new ArrayList&lt;Exception&gt;();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          locationErrorRows = new ArrayList&lt;Integer&gt;();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error("Failed to get region location ", ex);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          // This action failed before creating ars. Retain it, but do not add to submit list.<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          // We will then add it to ars in an already-failed state.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          retainedActions.add(new Action&lt;Row&gt;(r, ++posInList));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          locationErrors.add(ex);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>          locationErrorRows.add(posInList);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          it.remove();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>          break; // Backward compat: we stop considering actions on location error.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>        if (canTakeOperation(loc, regionIncluded, serverIncluded)) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, ++posInList);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>          setNonce(ng, r, action);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          retainedActions.add(action);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          // TODO: replica-get is not supported on this path<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          byte[] regionName = loc.getRegionInfo().getRegionName();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          addAction(loc.getServerName(), regionName, action, actionsByServer, nonceGroup);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          it.remove();<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>    } while (retainedActions.isEmpty() &amp;&amp; atLeastOne &amp;&amp; (locationErrors == null));<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>    if (retainedActions.isEmpty()) return NO_REQS_RESULT;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return submitMultiActions(tableName, retainedActions, nonceGroup, callback, null, needResults,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      locationErrors, locationErrorRows, actionsByServer, pool);<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>  &lt;CResult&gt; AsyncRequestFuture submitMultiActions(TableName tableName,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      List&lt;Action&lt;Row&gt;&gt; retainedActions, long nonceGroup, Batch.Callback&lt;CResult&gt; callback,<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Object[] results, boolean needResults, List&lt;Exception&gt; locationErrors,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      List&lt;Integer&gt; locationErrorRows, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      ExecutorService pool) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      tableName, retainedActions, nonceGroup, pool, callback, results, needResults);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Add location errors if any<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    if (locationErrors != null) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      for (int i = 0; i &lt; locationErrors.size(); ++i) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        int originalIndex = locationErrorRows.get(i);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        Row row = retainedActions.get(originalIndex).getAction();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        ars.manageError(originalIndex, row,<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          Retry.NO_LOCATION_PROBLEM, locationErrors.get(i), null);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    ars.sendMultiAction(actionsByServer, 1, null, false);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return ars;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Helper that is used when grouping the actions per region server.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   *<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param loc - the destination. Must not be null.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @param action - the action to add to the multiaction<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @param actionsByServer the multiaction per server<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param nonceGroup Nonce group.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private static void addAction(ServerName server, byte[] regionName, Action&lt;Row&gt; action,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer, long nonceGroup) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    MultiAction&lt;Row&gt; multiAction = actionsByServer.get(server);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (multiAction == null) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      multiAction = new MultiAction&lt;Row&gt;();<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      actionsByServer.put(server, multiAction);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (action.hasNonce() &amp;&amp; !multiAction.hasNonceGroup()) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      multiAction.setNonceGroup(nonceGroup);<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>    multiAction.add(regionName, action);<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>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Check if we should send new operations to this region or region server.<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * We're taking into account the past decision; if we have already accepted<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * operation on a given region, we accept all operations for this region.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   *<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param loc; the region and the server name we want to use.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @return true if this region is considered as busy.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  protected boolean canTakeOperation(HRegionLocation loc,<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                                     Map&lt;Long, Boolean&gt; regionsIncluded,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                                     Map&lt;ServerName, Boolean&gt; serversIncluded) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    long regionId = loc.getRegionInfo().getRegionId();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    Boolean regionPrevious = regionsIncluded.get(regionId);<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (regionPrevious != null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // We already know what to do with this region.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      return regionPrevious;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span>    Boolean serverPrevious = serversIncluded.get(loc.getServerName());<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    if (Boolean.FALSE.equals(serverPrevious)) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // It's a new region, on a region server that we have already excluded.<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return false;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    AtomicInteger regionCnt = taskCounterPerRegion.get(loc.getRegionInfo().getRegionName());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (regionCnt != null &amp;&amp; regionCnt.get() &gt;= maxConcurrentTasksPerRegion) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Too many tasks on this region already.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      return false;<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>    if (serverPrevious == null) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      // The region is ok, but we need to decide for this region server.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      int newServers = 0; // number of servers we're going to contact so far<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      for (Map.Entry&lt;ServerName, Boolean&gt; kv : serversIncluded.entrySet()) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (kv.getValue()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          newServers++;<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // Do we have too many total tasks already?<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      boolean ok = (newServers + tasksInProgress.get()) &lt; maxTotalConcurrentTasks;<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      if (ok) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>        // If the total is fine, is it ok for this individual server?<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        AtomicInteger serverCnt = taskCounterPerServer.get(loc.getServerName());<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        ok = (serverCnt == null || serverCnt.get() &lt; maxConcurrentTasksPerServer);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      if (!ok) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        serversIncluded.put(loc.getServerName(), Boolean.FALSE);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        return false;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>      serversIncluded.put(loc.getServerName(), Boolean.TRUE);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    } else {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      assert serverPrevious.equals(Boolean.TRUE);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    regionsIncluded.put(regionId, Boolean.TRUE);<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return true;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * See {@link #submitAll(ExecutorService, TableName, List, Batch.Callback, Object[])}.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   */<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(TableName tableName,<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    return submitAll(null, tableName, rows, callback, results);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
-<span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * Submit immediately the list of rows, whatever the server status. Kept for backward<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * compatibility: it allows to be used with the batch interface that return an array of objects.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   *<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * @param pool ExecutorService to use.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * @param tableName name of the table for which the submission is made.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param rows the list of rows.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param callback the callback.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @param results Optional array to return the results thru; backward compat.<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(ExecutorService pool, TableName tableName,<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    List&lt;Action&lt;Row&gt;&gt; actions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.563"></a>
-<span class="sourceLineNo">564</span><a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // The position will be used by the processBatch to match the object array returned.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    int posInList = -1;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    for (Row r : rows) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      posInList++;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (r instanceof Put) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        Put put = (Put) r;<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        if (put.isEmpty()) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          throw new IllegalArgumentException("No columns to insert for #" + (posInList+1)+ " item");<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, posInList);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      setNonce(ng, r, action);<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      actions.add(action);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        tableName, actions, ng.getNonceGroup(), getPool(pool), callback, results, results != null);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ars.groupAndSendMultiAction(actions, 1);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return ars;<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>  private static void setNonce(NonceGenerator ng, Row r, Action&lt;Row&gt; action) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (!(r instanceof Append) &amp;&amp; !(r instanceof Increment)) return;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    action.setNonce(ng.newNonce()); // Action handles NO_NONCE, so it's ok if ng is disabled.<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span><a name="line.590"></a>
-<span class="sourceLineNo">591</span>  /**<a name="line.591"></a>
-<span class="sourceLineNo">592</span>   * The context, and return value, for a single submit/submitAll call.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * Note on how this class (one AP submit) works. Initially, all requests are split into groups<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * by server; request is sent to each server in parallel; the RPC calls are not async so a<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * thread per server is used. Every time some actions fail, regions/locations might have<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * changed, so we re-group them by server and region again and send these groups in parallel<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * too. The result, in case of retries, is a "tree" of threads, with parent exiting after<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * scheduling children. This is why lots of code doesn't require any synchronization.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  protected class AsyncRequestFutureImpl&lt;CResult&gt; implements AsyncRequestFuture {<a name="line.600"></a>
-<span class="sourceLineNo">601</span><a name="line.601"></a>
-<span class="sourceLineNo">602</span>    /**<a name="line.602"></a>
-<span class="sourceLineNo">603</span>     * Runnable (that can be submitted to thread pool) that waits for when it's time<a name="line.603"></a>
-<span class="sourceLineNo">604</span>     * to issue replica calls, finds region replicas, groups the requests by replica and<a name="line.604"></a>
-<span class="sourceLineNo">605</span>     * issues the calls (on separate threads, via sendMultiAction).<a name="line.605"></a>
-<span class="sourceLineNo">606</span>     * This is done on a separate thread because we don't want to wait on user thread for<a name="line.606"></a>
-<span class="sourceLineNo">607</span>     * our asynchronous call, and usually we have to wait before making replica calls.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>     */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    private final class ReplicaCallIssuingRunnable implements Runnable {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      private final long startTime;<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      private final List&lt;Action&lt;Row&gt;&gt; initialActions;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>      public ReplicaCallIssuingRunnable(List&lt;Action&lt;Row&gt;&gt; initialActions, long startTime) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.initialActions = initialActions;<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        this.startTime = startTime;<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>      @Override<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      public void run() {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        boolean done = false;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        if (primaryCallTimeoutMicroseconds &gt; 0) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>          try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>            done = waitUntilDone(startTime * 1000L + primaryCallTimeoutMicroseconds);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          } catch (InterruptedException ex) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>            LOG.error("Replica thread was interrupted - no replica calls: " + ex.getMessage());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            return;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>          }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        if (done) return; // Done within primary timeout<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        List&lt;Action&lt;Row&gt;&gt; unknownLocActions = new ArrayList&lt;Action&lt;Row&gt;&gt;();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        if (replicaGetIndices == null) {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>          for (int i = 0; i &lt; results.length; ++i) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>            addReplicaActions(i, actionsByServer, unknownLocActions);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          }<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        } else {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>          for (int replicaGetIndice : replicaGetIndices) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>            addReplicaActions(replicaGetIndice, actionsByServer, unknownLocActions);<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>        if (!actionsByServer.isEmpty()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          sendMultiAction(actionsByServer, 1, null, unknownLocActions.isEmpty());<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        }<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        if (!unknownLocActions.isEmpty()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>          actionsByServer = new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          for (Action&lt;Row&gt; action : unknownLocActions) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>            addReplicaActionsAgain(action, actionsByServer);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          // Some actions may have completely failed, they are handled inside addAgain.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>          if (!actionsByServer.isEmpty()) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>            sendMultiAction(actionsByServer, 1, null, true);<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>      }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>      /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>       * Add replica actions to action map by server.<a name="line.658"></a>
-<span class="sourceLineNo">659</span>       * @param index Index of the original action.<a name="line.659"></a>
-<span class="sourceLineNo">660</span>       * @param actionsByServer The map by server to add it to.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>       */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      private void addReplicaActions(int index, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.662"></a>
-<span class="sourceLineNo">663</span>          List&lt;Action&lt;Row&gt;&gt; unknownReplicaActions) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>        if (results[index] != null) return; // opportunistic. Never goes from non-null to null.<a name="line.664"></a>
-<span class="sourceLineNo">665</span>        Action&lt;Row&gt; action = initialActions.get(index);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        RegionLocations loc = findAllLocationsOrFail(action, true);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>        if (loc == null) return;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>        HRegionLocation[] locs = loc.getRegionLocations();<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        if (locs.length == 1) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>          LOG.warn("No replicas found for " + action.getAction());<a name="line.670"></a>
-<span class="sourceLineNo">671</span>          return;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        synchronized (replicaResultLock) {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          // Don't run replica calls if the original has finished. We could do it e.g. if<a name="line.674"></a>
-<span class="sourceLineNo">675</span>          // original has already failed before first replica call (unlikely given retries),<a name="line.675"></a>
-<span class="sourceLineNo">676</span>          // but that would require additional synchronization w.r.t. returning to caller.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          if (results[index] != null) return;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // We set the number of calls here. After that any path must call setResult/setError.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          // True even for replicas that are not found - if we refuse to send we MUST set error.<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          results[index] = new ReplicaResultState(locs.length);<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        for (int i = 1; i &lt; locs.length; ++i) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          Action&lt;Row&gt; replicaAction = new Action&lt;Row&gt;(action, i);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          if (locs[i] != null) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>            addAction(locs[i].getServerName(), locs[i].getRegionInfo().getRegionName(),<a name="line.685"></a>
-<span class="sourceLineNo">686</span>                replicaAction, actionsByServer, nonceGroup);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          } else {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>            unknownReplicaActions.add(replicaAction);<a name="line.688"></a>
-<span class="sourceLineNo">689</span>          }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      }<a name="line.691"></a>
-<span class="sourceLineNo">692</span><a name="line.692"></a>
-<span class="sourceLineNo">693</span>      private void addReplicaActionsAgain(<a name="line.693"></a>
-<span class="sourceLineNo">694</span>          Action&lt;Row&gt; action, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        if (action.getReplicaId() == RegionReplicaUtil.DEFAULT_REPLICA_ID) {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          throw new AssertionError("Cannot have default replica here");<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        HRegionLocation loc = getReplicaLocationOrFail(action);<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        if (loc == null) return;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        addAction(loc.getServerName(), loc.getRegionInfo().getRegionName(),<a name="line.700"></a>
-<span class="sourceLineNo">701</span>            action, actionsByServer, nonceGroup);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>    /**<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     * Runnable (that can be submitted to thread pool) that submits MultiAction to a<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * single server. The server call is synchronous, therefore we do it on a thread pool.<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     */<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    private final class SingleServerRequestRunnable implements Runnable {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      private final MultiAction&lt;Row&gt; multiAction;<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      private final int numAttempt;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      private final ServerName server;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>      private SingleServerRequestRunnable(<a name="line.715"></a>
-<span class="sourceLineNo">716</span>          MultiAction&lt;Row&gt; multiAction, int numAttempt, ServerName server,<a name="line.716"></a>
-<span class="sourceLineNo">717</span>          Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>        this.multiAction = multiAction;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        this.numAttempt = numAttempt;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        this.server = server;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        this.callsInProgress = callsInProgress;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>      @Override<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      public void run() {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        MultiResponse res;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        MultiServerCallable&lt;Row&gt; callable = null;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>        try {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>          callable = createCallable(server, tableName, multiAction);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>          try {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>            RpcRetryingCaller&lt;MultiResponse&gt; caller = createCaller(callable);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>            if (callsInProgress != null) callsInProgress.add(callable);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>            res = caller.callWithoutRetries(callable, timeout);<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span>            if (res == null) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>              // Cancelled<a name="line.736"></a>
-<span class="sourceLineNo">737</span>              return;<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>          } catch (IOException e) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            // The service itself failed . It may be an error coming from the communication<a name="line.741"></a>
-<span class="sourceLineNo">742</span>            //   layer, but, as well, a functional error raised by the server.<a name="line.742"></a>
-<span class="sourceLineNo">743</span>            receiveGlobalFailure(multiAction, server, numAttempt, e);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>            return;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          } catch (Throwable t) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>            // This should not happen. Let's log &amp; retry anyway.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>            LOG.error("#" + id + ", Caught throwable while calling. This is unexpected." +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>                " Retrying. Server is " + server + ", tableName=" + tableName, t);<a name="line.748"></a>
-<span class="sourceLineNo">749</span>            receiveGlobalFailure(multiAction, server, numAttempt, t);<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            return;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>          }<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>          // Normal case: we received an answer from the server, and it's not an exception.<a name="line.753"></a>
-<span class="sourceLineNo">754</span>          receiveMultiAction(multiAction, server, res, numAttempt);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>        } catch (Throwable t) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // Something really bad happened. We are on the send thread that will now die.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          LOG.error("Internal AsyncProcess #" + id + " error for "<a name="line.757"></a>
-<span class="sourceLineNo">758</span>              + tableName + " processing for " + server, t);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          throw new RuntimeException(t);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        } finally {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          decTaskCounters(multiAction.getRegions(), server);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>          if (callsInProgress != null &amp;&amp; callable != null) {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>            callsInProgress.remove(callable);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          }<a name="line.764"></a>
-<span class="sourceLineNo">765</span>        }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    private final Batch.Callback&lt;CResult&gt; callback;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    private final BatchErrors errors;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    private final ConnectionImplementation.ServerErrorTracker errorsByServer;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    private final ExecutorService pool;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.773"></a>
-<span class="sourceLineNo">774</span><a name="line.774"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  // TODO: many of the fields should be made private<a name="

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
index dc0d7a6..434ae88 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -96,8 +96,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="strong">EventType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="strong">ExecutorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="strong">EventType</span></a></li>
 </ul>
 </li>
 </ul>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html b/devapidocs/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html
index 2937869..b36eabc 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html
@@ -207,7 +207,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcExecutor.html" ti
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)</code>
 <div class="block">Add the request to the executor queue</div>
 </td>
@@ -364,8 +364,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcExecutor.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>dispatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html#line.75">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)
-              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html#line.75">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)
+                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcExecutor.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">RpcExecutor</a></code></strong></div>
 <div class="block">Add the request to the executor queue</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html b/devapidocs/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
index 04ca050..6fdf5c7 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
@@ -100,7 +100,7 @@
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.33">FifoRpcScheduler</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.34">FifoRpcScheduler</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></pre>
 <div class="block">A very simple <code></code>RpcScheduler} that serves incoming requests in order.
 
@@ -150,6 +150,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#maxQueueLength">maxQueueLength</a></strong></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#queueSize">queueSize</a></strong></code>&nbsp;</td>
+</tr>
 </table>
 </li>
 </ul>
@@ -184,7 +188,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;task)</code>
 <div class="block">Dispatches an RPC request asynchronously.</div>
 </td>
@@ -259,7 +263,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>handlerCount</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.35">handlerCount</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.36">handlerCount</a></pre>
 </li>
 </ul>
 <a name="maxQueueLength">
@@ -268,7 +272,16 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>maxQueueLength</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.36">maxQueueLength</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.37">maxQueueLength</a></pre>
+</li>
+</ul>
+<a name="queueSize">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>queueSize</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.38">queueSize</a></pre>
 </li>
 </ul>
 <a name="executor">
@@ -277,7 +290,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockListLast">
 <li class="blockList">
 <h4>executor</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.37">executor</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.39">executor</a></pre>
 </li>
 </ul>
 </li>
@@ -294,7 +307,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FifoRpcScheduler</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.39">FifoRpcScheduler</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.41">FifoRpcScheduler</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                 int&nbsp;handlerCount)</pre>
 </li>
 </ul>
@@ -312,7 +325,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>init</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.46">init</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler.Context</a>&nbsp;context)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.48">init</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler.Context</a>&nbsp;context)</pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#init(org.apache.hadoop.hbase.ipc.RpcScheduler.Context)">RpcScheduler</a></code></strong></div>
 <div class="block">Does some quick initialization. Heavy tasks (e.g. starting threads) should be
  done in <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#start()"><code>RpcScheduler.start()</code></a>. This method is called before <code>start</code>.</div>
@@ -328,7 +341,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.51">start</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.53">start</a>()</pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#start()">RpcScheduler</a></code></strong></div>
 <div class="block">Prepares for request serving. An implementation may start some handler threads here.</div>
 <dl>
@@ -343,7 +356,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.63">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.65">stop</a>()</pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#stop()">RpcScheduler</a></code></strong></div>
 <div class="block">Stops serving new requests.</div>
 <dl>
@@ -358,9 +371,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>dispatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.68">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;task)
-              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.70">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;task)
+                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">RpcScheduler</a></code></strong></div>
 <div class="block">Dispatches an RPC request asynchronously. An implementation is free to choose to process the
  request immediately or delay it for later processing.</div>
@@ -379,7 +392,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getGeneralQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.79">getGeneralQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.89">getGeneralQueueLength</a>()</pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getGeneralQueueLength()">RpcScheduler</a></code></strong></div>
 <div class="block">Retrieves length of the general queue for metrics.</div>
 <dl>
@@ -394,7 +407,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getPriorityQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.84">getPriorityQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.94">getPriorityQueueLength</a>()</pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getPriorityQueueLength()">RpcScheduler</a></code></strong></div>
 <div class="block">Retrieves length of the priority queue for metrics.</div>
 <dl>
@@ -409,7 +422,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.89">getReplicationQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.99">getReplicationQueueLength</a>()</pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getReplicationQueueLength()">RpcScheduler</a></code></strong></div>
 <div class="block">Retrieves length of the replication queue for metrics.</div>
 <dl>
@@ -424,7 +437,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getActiveRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.94">getActiveRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.104">getActiveRpcHandlerCount</a>()</pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveRpcHandlerCount()">RpcScheduler</a></code></strong></div>
 <div class="block">Retrieves the number of active handler.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html b/devapidocs/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html
index 05bc84d..a307ff9 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html
@@ -297,7 +297,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcExecutor.html" ti
                             float&nbsp;readShare)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)</code>
 <div class="block">Add the request to the executor queue</div>
 </td>
@@ -606,8 +606,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcExecutor.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>dispatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html#line.163">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)
-              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html#line.163">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)
+                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcExecutor.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">RpcExecutor</a></code></strong></div>
 <div class="block">Add the request to the executor queue</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RpcExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcExecutor.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcExecutor.html
index 2554b21..aad6bcd 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcExecutor.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcExecutor.html
@@ -232,7 +232,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcExecutor.html#consumerLoop(java.util.concurrent.BlockingQueue)">consumerLoop</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&gt;&nbsp;myQueue)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>abstract void</code></td>
+<td class="colFirst"><code>abstract boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcExecutor.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)</code>
 <div class="block">Add the request to the executor queue</div>
 </td>
@@ -472,8 +472,8 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>dispatch</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.html#line.89">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)
-                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.html#line.89">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;callTask)
+                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Add the request to the executor queue</div>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd></dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcScheduler.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcScheduler.html
index 5373ee0..b3b98cd 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcScheduler.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcScheduler.html
@@ -161,7 +161,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>abstract void</code></td>
+<td class="colFirst"><code>abstract boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#dispatch(org.apache.hadoop.hbase.ipc.CallRunner)">dispatch</a></strong>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;task)</code>
 <div class="block">Dispatches an RPC request asynchronously.</div>
 </td>
@@ -285,9 +285,9 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>dispatch</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.61">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;task)
-                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.61">dispatch</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/CallRunner.html" title="class in org.apache.hadoop.hbase.ipc">CallRunner</a>&nbsp;task)
+                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Dispatches an RPC request asynchronously. An implementation is free to choose to process the
  request immediately or delay it for later processing.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>task</code> - the request to be dispatched</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
index 33f5b23..f2292b7 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.1957">RpcServer.BlockingServiceAndInterface</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.1962">RpcServer.BlockingServiceAndInterface</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Datastructure for passing a <code>BlockingService</code> and its associated class of
  protobuf service interface.  For example, a server that fielded what is defined
@@ -200,7 +200,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>service</h4>
-<pre>private final&nbsp;com.google.protobuf.BlockingService <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.1958">service</a></pre>
+<pre>private final&nbsp;com.google.protobuf.BlockingService <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.1963">service</a></pre>
 </li>
 </ul>
 <a name="serviceInterface">
@@ -209,7 +209,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>serviceInterface</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.1959">serviceInterface</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.1964">serviceInterface</a></pre>
 </li>
 </ul>
 </li>
@@ -226,7 +226,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RpcServer.BlockingServiceAndInterface</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.1960">RpcServer.BlockingServiceAndInterface</a>(com.google.protobuf.BlockingService&nbsp;service,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.1965">RpcServer.BlockingServiceAndInterface</a>(com.google.protobuf.BlockingService&nbsp;service,
                                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;serviceInterface)</pre>
 </li>
 </ul>
@@ -244,7 +244,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getServiceInterface</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.1965">getServiceInterface</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.1970">getServiceInterface</a>()</pre>
 </li>
 </ul>
 <a name="getBlockingService()">
@@ -253,7 +253,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getBlockingService</h4>
-<pre>public&nbsp;com.google.protobuf.BlockingService&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.1968">getBlockingService</a>()</pre>
+<pre>public&nbsp;com.google.protobuf.BlockingService&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html#line.1973">getBlockingService</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Call.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Call.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Call.html
index 4010dcc..611da9c 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Call.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.Call.html
@@ -36,7 +36,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/ipc/RpcServer.Call.html" target="_top">Frames</a></li>
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre> class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.286">RpcServer.Call</a>
+<pre> class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.287">RpcServer.Call</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a></pre>
 <div class="block">Datastructure that holds all necessary to a method invocation and then afterward, carries
@@ -389,7 +389,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>id</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.287">id</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.288">id</a></pre>
 </li>
 </ul>
 <a name="service">
@@ -398,7 +398,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>service</h4>
-<pre>protected&nbsp;com.google.protobuf.BlockingService <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.288">service</a></pre>
+<pre>protected&nbsp;com.google.protobuf.BlockingService <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.289">service</a></pre>
 </li>
 </ul>
 <a name="md">
@@ -407,7 +407,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>md</h4>
-<pre>protected&nbsp;com.google.protobuf.Descriptors.MethodDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.289">md</a></pre>
+<pre>protected&nbsp;com.google.protobuf.Descriptors.MethodDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.290">md</a></pre>
 </li>
 </ul>
 <a name="header">
@@ -416,7 +416,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>header</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.290">header</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.291">header</a></pre>
 </li>
 </ul>
 <a name="param">
@@ -425,7 +425,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>param</h4>
-<pre>protected&nbsp;com.google.protobuf.Message <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.291">param</a></pre>
+<pre>protected&nbsp;com.google.protobuf.Message <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.292">param</a></pre>
 </li>
 </ul>
 <a name="cellScanner">
@@ -434,7 +434,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>cellScanner</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.293">cellScanner</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.294">cellScanner</a></pre>
 </li>
 </ul>
 <a name="connection">
@@ -443,7 +443,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>connection</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.294">connection</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Connection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.295">connection</a></pre>
 </li>
 </ul>
 <a name="timestamp">
@@ -452,7 +452,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>timestamp</h4>
-<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.295">timestamp</a></pre>
+<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.296">timestamp</a></pre>
 </li>
 </ul>
 <a name="response">
@@ -461,7 +461,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>response</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferChain.html" title="class in org.apache.hadoop.hbase.ipc">BufferChain</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.300">response</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferChain.html" title="class in org.apache.hadoop.hbase.ipc">BufferChain</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.301">response</a></pre>
 <div class="block">Chain of buffers to send as response.</div>
 </li>
 </ul>
@@ -471,7 +471,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>responder</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Responder.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Responder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.301">responder</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Responder.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.Responder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.302">responder</a></pre>
 </li>
 </ul>
 <a name="size">
@@ -480,7 +480,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>size</h4>
-<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.303">size</a></pre>
+<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.304">size</a></pre>
 </li>
 </ul>
 <a name="isError">
@@ -489,7 +489,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>isError</h4>
-<pre>protected&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.304">isError</a></pre>
+<pre>protected&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.305">isError</a></pre>
 </li>
 </ul>
 <a name="tinfo">
@@ -498,7 +498,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>tinfo</h4>
-<pre>protected&nbsp;org.apache.htrace.TraceInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.305">tinfo</a></pre>
+<pre>protected&nbsp;org.apache.htrace.TraceInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.306">tinfo</a></pre>
 </li>
 </ul>
 <a name="cellBlock">
@@ -507,7 +507,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>cellBlock</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.306">cellBlock</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.307">cellBlock</a></pre>
 </li>
 </ul>
 <a name="user">
@@ -516,7 +516,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>user</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.308">user</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.309">user</a></pre>
 </li>
 </ul>
 <a name="remoteAddress">
@@ -525,7 +525,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>remoteAddress</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.309">remoteAddress</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.310">remoteAddress</a></pre>
 </li>
 </ul>
 <a name="callback">
@@ -534,7 +534,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>callback</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.310">callback</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.311">callback</a></pre>
 </li>
 </ul>
 <a name="responseCellSize">
@@ -543,7 +543,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>responseCellSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.312">responseCellSize</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.313">responseCellSize</a></pre>
 </li>
 </ul>
 <a name="responseBlockSize">
@@ -552,7 +552,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>responseBlockSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.313">responseBlockSize</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.314">responseBlockSize</a></pre>
 </li>
 </ul>
 <a name="retryImmediatelySupported">
@@ -561,7 +561,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>retryImmediatelySupported</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.314">retryImmediatelySupported</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.315">retryImmediatelySupported</a></pre>
 </li>
 </ul>
 </li>
@@ -578,7 +578,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RpcServer.Call</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.318">RpcServer.Call</a>(int&nbsp;id,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.319">RpcServer.Call</a>(int&nbsp;id,
               com.google.protobuf.BlockingService&nbsp;service,
               com.google.protobuf.Descriptors.MethodDescriptor&nbsp;md,
               org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
@@ -605,7 +605,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>done</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.346">done</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.347">done</a>()</pre>
 <div class="block">Call is done. Execution happened and we returned results to client. It is now safe to
  cleanup.</div>
 </li>
@@ -616,7 +616,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.356">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.357">toString</a>()</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -629,7 +629,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getHeader</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.362">getHeader</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.363">getHeader</a>()</pre>
 </li>
 </ul>
 <a name="toShortString()">
@@ -638,7 +638,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>toShortString</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.370">toShortString</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.371">toShortString</a>()</pre>
 </li>
 </ul>
 <a name="toTraceString()">
@@ -647,7 +647,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>toTraceString</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.379">toTraceString</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.380">toTraceString</a>()</pre>
 </li>
 </ul>
 <a name="setSaslTokenResponse(java.nio.ByteBuffer)">
@@ -656,7 +656,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>setSaslTokenResponse</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.386">setSaslTokenResponse</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;response)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.387">setSaslTokenResponse</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;response)</pre>
 </li>
 </ul>
 <a name="setResponse(java.lang.Object, org.apache.hadoop.hbase.CellScanner, java.lang.Throwable, java.lang.String)">
@@ -665,7 +665,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>setResponse</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.390">setResponse</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;m,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.391">setResponse</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;m,
                <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cells,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;errorMsg)</pre>
@@ -677,7 +677,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>wrapWithSasl</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferChain.html" title="class in org.apache.hadoop.hbase.ipc">BufferChain</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.457">wrapWithSasl</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferChain.html" title="class in org.apache.hadoop.hbase.ipc">BufferChain</a>&nbsp;bc)
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferChain.html" title="class in org.apache.hadoop.hbase.ipc">BufferChain</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.458">wrapWithSasl</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferChain.html" title="class in org.apache.hadoop.hbase.ipc">BufferChain</a>&nbsp;bc)
                           throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -689,7 +689,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>isClientCellBlockSupported</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.480">isClientCellBlockSupported</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.481">isClientCellBlockSupported</a>()</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#isClientCellBlockSupported()">RpcCallContext</a></code></strong></div>
 <div class="block">If the client connected and specified a codec to use, then we will use this codec making
  cellblocks to return.  If the client did not specify a codec, we assume it does not support
@@ -708,7 +708,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>disconnectSince</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.485">disconnectSince</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.486">disconnectSince</a>()</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#disconnectSince()">RpcCallContext</a></code></strong></div>
 <div class="block">Check if the caller who made this IPC call has disconnected.
  If called from outside the context of IPC, this does nothing.</div>
@@ -725,7 +725,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.493">getSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.494">getSize</a>()</pre>
 </li>
 </ul>
 <a name="getResponseCellSize()">
@@ -734,7 +734,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getResponseCellSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.497">getResponseCellSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.498">getResponseCellSize</a>()</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#getResponseCellSize()">RpcCallContext</a></code></strong></div>
 <div class="block">The size of response cells that have been accumulated so far.
  This along with the corresponding increment call is used to ensure that multi's or
@@ -751,7 +751,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementResponseCellSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.501">incrementResponseCellSize</a>(long&nbsp;cellSize)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.502">incrementResponseCellSize</a>(long&nbsp;cellSize)</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#incrementResponseCellSize(long)">RpcCallContext</a></code></strong></div>
 <div class="block">Add on the given amount to the retained cell size.
 
@@ -770,7 +770,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getResponseBlockSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.506">getResponseBlockSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.507">getResponseBlockSize</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#getResponseBlockSize()">getResponseBlockSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a></code></dd>
@@ -783,7 +783,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementResponseBlockSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.511">incrementResponseBlockSize</a>(long&nbsp;blockSize)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.512">incrementResponseBlockSize</a>(long&nbsp;blockSize)</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#incrementResponseBlockSize(long)">incrementResponseBlockSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a></code></dd>
@@ -796,7 +796,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>sendResponseIfReady</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.515">sendResponseIfReady</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.516">sendResponseIfReady</a>()
                          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -808,7 +808,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteUser</h4>
-<pre>public&nbsp;org.apache.hadoop.security.UserGroupInformation&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.519">getRemoteUser</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.security.UserGroupInformation&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.520">getRemoteUser</a>()</pre>
 </li>
 </ul>
 <a name="getRequestUser()">
@@ -817,7 +817,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestUser</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.524">getRequestUser</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.525">getRequestUser</a>()</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#getRequestUser()">RpcCallContext</a></code></strong></div>
 <div class="block">Returns the user credentials associated with the current RPC request or
  <code>null</code> if no credentials were provided.</div>
@@ -833,7 +833,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestUserName</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.529">getRequestUserName</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.530">getRequestUserName</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#getRequestUserName()">getRequestUserName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a></code></dd>
@@ -846,7 +846,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteAddress</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.535">getRemoteAddress</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.536">getRemoteAddress</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#getRemoteAddress()">getRemoteAddress</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a></code></dd>
@@ -859,7 +859,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getClientVersionInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.540">getClientVersionInfo</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.541">getClientVersionInfo</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#getClientVersionInfo()">getClientVersionInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a></code></dd>
@@ -872,7 +872,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>setCallBack</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.545">setCallBack</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a>&nbsp;callback)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.546">setCallBack</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a>&nbsp;callback)</pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#setCallBack(org.apache.hadoop.hbase.ipc.RpcCallback)">RpcCallContext</a></code></strong></div>
 <div class="block">Sets a callback which has to be executed at the end of this RPC call. Such a callback is an
  optional one for any Rpc call.</div>
@@ -888,7 +888,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isRetryImmediatelySupported</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.550">isRetryImmediatelySupported</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html#line.551">isRetryImmediatelySupported</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html#isRetryImmediatelySupported()">isRetryImmediatelySupported</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a></code></dd>
@@ -922,7 +922,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.ht
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Next Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/ipc/RpcServer.Call.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html
deleted file mode 100644
index e30f6ee..0000000
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html
+++ /dev/null
@@ -1,259 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>RpcServer.CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<script type="text/javascript"><!--
-    if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="RpcServer.CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)";
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar_top">
-<!--   -->
-</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/RpcServer.CallQueueTooBigException.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/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Next Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" target="_top">Frames</a></li>
-<li><a href="RpcServer.CallQueueTooBigException.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
-<li>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.ipc</div>
-<h2 title="Class RpcServer.CallQueueTooBigException" class="title">Class RpcServer.CallQueueTooBigException</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/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><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
-<li>
-<ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
-<li>
-<ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">java.io.IOException</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException</li>
-</ul>
-</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/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
-</dl>
-<dl>
-<dt>Enclosing class:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></dd>
-</dl>
-<hr>
-<br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.html#line.1179">RpcServer.CallQueueTooBigException</a>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../serialized-form.html#org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException">Serialized Form</a></dd></dl>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor_summary">
-<!--   -->
-</a>
-<h3>Constructor Summary</h3>
-<table class="overviewSummary" 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><strong><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html#RpcServer.CallQueueTooBigException()">RpcServer.CallQueueTooBigException</a></strong>()</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.Throwable">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or inter
 face in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lan
 g/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement[])" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor_detail">
-<!--   -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="RpcServer.CallQueueTooBigException()">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>RpcServer.CallQueueTooBigException</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html#line.1180">RpcServer.CallQueueTooBigException</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/RpcServer.CallQueueTooBigException.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/ipc/RpcServer.Call.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.Connection.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">Next Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" target="_top">Frames</a></li>
-<li><a href="RpcServer.CallQueueTooBigException.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
-<li>Method</li>
-</ul>
-</div>
-<a name="skip-navbar_bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html
index d0040f6..3180076 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.ReplicaCallIssuingRunnable.html
@@ -61,1780 +61,1781 @@
 <span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.TableName;<a name="line.53"></a>
 <span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.backoff.ServerStatistics;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.htrace.Trace;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>import com.google.common.annotations.VisibleForTesting;<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> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * synchronous caller such as HTable.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * &lt;p&gt;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * to track operation progress.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * &lt;/p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * The class manages internally the retries.<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;/p&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;p&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;/p&gt;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * &lt;p&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * retrieving errors from different threads may be not thread safe.<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * arising from older operations.<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * &lt;/p&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * gets as well.<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;/p&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>@InterfaceAudience.Private<a name="line.98"></a>
-<span class="sourceLineNo">099</span>class AsyncProcess {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * this stage.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   */<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      "hbase.client.start.log.errors.counter";<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  /**<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * The context used to wait for results from one submit call.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   *  */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public static interface AsyncRequestFuture {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    public boolean hasError();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /**<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * Return value from a submit that didn't contain any requests.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    final Object[] result = new Object[0];<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public boolean hasError() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return false;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      return null;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>    @Override<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      return null;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    @Override<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    public Object[] getResults() {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      return result;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  };<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * the replica calls are launched. See results for details of this process.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private static class ReplicaResultState {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public ReplicaResultState(int callCount) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      this.callCount = callCount;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    int callCount;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    BatchErrors replicaErrors = null;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    @Override<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    public String toString() {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.htrace.Trace;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>import com.google.common.annotations.VisibleForTesting;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * This class  allows a continuous flow of requests. It's written to be compatible with a<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * synchronous caller such as HTable.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * &lt;p&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> * The caller sends a buffer of operation, by calling submit. This class extract from this list<a name="line.68"></a>
+<span class="sourceLineNo">069</span> * the operations it can send, i.e. the operations that are on region that are not considered<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * as busy. The process is asynchronous, i.e. it returns immediately when if has finished to<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * iterate on the list. If, and only if, the maximum number of current task is reached, the call<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * to submit will block. Alternatively, the caller can call submitAll, in which case all the<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * operations will be sent. Each call to submit returns a future-like object that can be used<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * to track operation progress.<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;/p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * The class manages internally the retries.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;/p&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;p&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * The class can be constructed in regular mode, or "global error" mode. In global error mode,<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * AP tracks errors across all calls (each "future" also has global view of all errors). That<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * mode is necessary for backward compat with HTable behavior, where multiple submissions are<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * made and the errors can propagate using any put/flush call, from previous calls.<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * In "regular" mode, the errors are tracked inside the Future object that is returned.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * The results are always tracked inside the Future object and can be retrieved when the call<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * has finished. Partial results can also be retrieved if some part of multi-request failed.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;/p&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * This class is thread safe in regular mode; in global error code, submitting operations and<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * retrieving errors from different threads may be not thread safe.<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * Internally, the class is thread safe enough to manage simultaneously new submission and results<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * arising from older operations.<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;/p&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;p&gt;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * Internally, this class works with {@link Row}, this mean it could be theoretically used for<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * gets as well.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/p&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>@InterfaceAudience.Private<a name="line.99"></a>
+<span class="sourceLineNo">100</span>class AsyncProcess {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static final Log LOG = LogFactory.getLog(AsyncProcess.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static final AtomicLong COUNTER = new AtomicLong();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static final String PRIMARY_CALL_TIMEOUT_KEY = "hbase.client.primaryCallTimeout.multiget";<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * Configure the number of failures after which the client will start logging. A few failures<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * is fine: region moved, then is not opened, then is overloaded. We try to have an acceptable<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * heuristic for the number of errors we don't log. 9 was chosen because we wait for 1s at<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * this stage.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public static final String START_LOG_ERRORS_AFTER_COUNT_KEY =<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      "hbase.client.start.log.errors.counter";<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static final int DEFAULT_START_LOG_ERRORS_AFTER_COUNT = 9;<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * The context used to wait for results from one submit call.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * 1) If AsyncProcess is set to track errors globally, and not per call (for HTable puts),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   *    then errors and failed operations in this object will reflect global errors.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * 2) If submit call is made with needResults false, results will not be saved.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   *  */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public static interface AsyncRequestFuture {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public boolean hasError();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public RetriesExhaustedWithDetailsException getErrors();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public List&lt;? extends Row&gt; getFailedOperations();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    public Object[] getResults() throws InterruptedIOException;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /** Wait until all tasks are executed, successfully or not. */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    public void waitUntilDone() throws InterruptedIOException;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * Return value from a submit that didn't contain any requests.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static final AsyncRequestFuture NO_REQS_RESULT = new AsyncRequestFuture() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    final Object[] result = new Object[0];<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    public boolean hasError() {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      return false;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    public RetriesExhaustedWithDetailsException getErrors() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      return null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>    @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public List&lt;? extends Row&gt; getFailedOperations() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return null;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    public Object[] getResults() {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      return result;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    public void waitUntilDone() throws InterruptedIOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  };<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  /** Sync point for calls to multiple replicas for the same user request (Get).<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   * Created and put in the results array (we assume replica calls require results) when<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   * the replica calls are launched. See results for details of this process.<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * POJO, all fields are public. To modify them, the object itself is locked. */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private static class ReplicaResultState {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public ReplicaResultState(int callCount) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      this.callCount = callCount;<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>    /** Number of calls outstanding, or 0 if a call succeeded (even with others outstanding). */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    int callCount;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    /** Errors for which it is not decided whether we will report them to user. If one of the<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * calls succeeds, we will discard the errors that may have happened in the other calls. */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    BatchErrors replicaErrors = null;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    public String toString() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return "[call count " + callCount + "; errors " + replicaErrors + "]";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  // TODO: many of the fields should be made private<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  protected final long id;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  protected final ClusterConnection connection;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected final RpcRetryingCallerFactory rpcCallerFactory;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  protected final RpcControllerFactory rpcFactory;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  protected final BatchErrors globalErrors;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  protected final ExecutorService pool;<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  protected final AtomicLong tasksInProgress = new AtomicLong(0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  protected final ConcurrentMap&lt;byte[], AtomicInteger&gt; taskCounterPerRegion =<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      new ConcurrentSkipListMap&lt;byte[], AtomicInteger&gt;(Bytes.BYTES_COMPARATOR);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected final ConcurrentMap&lt;ServerName, AtomicInteger&gt; taskCounterPerServer =<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      new ConcurrentHashMap&lt;ServerName, AtomicInteger&gt;();<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  // Start configuration settings.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final int startLogErrorsCnt;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  /**<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * The number of tasks simultaneously executed on the cluster.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  protected final int maxTotalConcurrentTasks;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * The number of tasks we run in parallel on a single region.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * With 1 (the default) , we ensure that the ordering of the queries is respected: we don't start<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * a set of operations on a region before the previous one is done. As well, this limits<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * the pressure we put on the region server.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  protected final int maxConcurrentTasksPerRegion;<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * The number of task simultaneously executed on a single region server.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  protected final int maxConcurrentTasksPerServer;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  protected final long pause;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  protected int numTries;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  protected int serverTrackerTimeout;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected int timeout;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  protected long primaryCallTimeoutMicroseconds;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // End configuration settings.<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  protected static class BatchErrors {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final List&lt;Throwable&gt; throwables = new ArrayList&lt;Throwable&gt;();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final List&lt;Row&gt; actions = new ArrayList&lt;Row&gt;();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    private final List&lt;String&gt; addresses = new ArrayList&lt;String&gt;();<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    public synchronized void add(Throwable ex, Row row, ServerName serverName) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (row == null){<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        throw new IllegalArgumentException("row cannot be null. location=" + serverName);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>      throwables.add(ex);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      actions.add(row);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      addresses.add(serverName != null ? serverName.toString() : "null");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public boolean hasErrors() {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return !throwables.isEmpty();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private synchronized RetriesExhaustedWithDetailsException makeException() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      return new RetriesExhaustedWithDetailsException(<a name="line.245"></a>
-<span class="sourceLineNo">246</span>          new ArrayList&lt;Throwable&gt;(throwables),<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          new ArrayList&lt;Row&gt;(actions), new ArrayList&lt;String&gt;(addresses));<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>    public synchronized void clear() {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      throwables.clear();<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      actions.clear();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      addresses.clear();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public synchronized void merge(BatchErrors other) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      throwables.addAll(other.throwables);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      actions.addAll(other.actions);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      addresses.addAll(other.addresses);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  public AsyncProcess(ClusterConnection hc, Configuration conf, ExecutorService pool,<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RpcRetryingCallerFactory rpcCaller, boolean useGlobalErrors,<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      RpcControllerFactory rpcFactory) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    if (hc == null) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      throw new IllegalArgumentException("HConnection cannot be null.");<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>    this.connection = hc;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    this.pool = pool;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    this.globalErrors = useGlobalErrors ? new BatchErrors() : null;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    this.id = COUNTER.incrementAndGet();<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // how many times we could try in total, one more than retry number<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    this.numTries = conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER) + 1;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    this.timeout = conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    this.primaryCallTimeoutMicroseconds = conf.getInt(PRIMARY_CALL_TIMEOUT_KEY, 10000);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    this.maxTotalConcurrentTasks = conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    this.maxConcurrentTasksPerServer = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERSERVER_TASKS,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERSERVER_TASKS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.maxConcurrentTasksPerRegion = conf.getInt(HConstants.HBASE_CLIENT_MAX_PERREGION_TASKS,<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          HConstants.DEFAULT_HBASE_CLIENT_MAX_PERREGION_TASKS);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.startLogErrorsCnt =<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        conf.getInt(START_LOG_ERRORS_AFTER_COUNT_KEY, DEFAULT_START_LOG_ERRORS_AFTER_COUNT);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (this.maxTotalConcurrentTasks &lt;= 0) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throw new IllegalArgumentException("maxTotalConcurrentTasks=" + maxTotalConcurrentTasks);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (this.maxConcurrentTasksPerServer &lt;= 0) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      throw new IllegalArgumentException("maxConcurrentTasksPerServer=" +<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          maxConcurrentTasksPerServer);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    if (this.maxConcurrentTasksPerRegion &lt;= 0) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      throw new IllegalArgumentException("maxConcurrentTasksPerRegion=" +<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          maxConcurrentTasksPerRegion);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Server tracker allows us to do faster, and yet useful (hopefully), retries.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // However, if we are too useful, we might fail very quickly due to retry count limit.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // To avoid this, we are going to cheat for now (see HBASE-7659), and calculate maximum<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    // retry time if normal retries were used. Then we will retry until this time runs out.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    // If we keep hitting one server, the net effect will be the incremental backoff, and<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    // essentially the same number of retries as planned. If we have to do faster retries,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // we will do more retries in aggregate, but the user will be none the wiser.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    this.serverTrackerTimeout = 0;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    for (int i = 0; i &lt; this.numTries; ++i) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      serverTrackerTimeout += ConnectionUtils.getPauseTime(this.pause, i);<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>    this.rpcCallerFactory = rpcCaller;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    this.rpcFactory = rpcFactory;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * @return pool if non null, otherwise returns this.pool if non null, otherwise throws<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   *         RuntimeException<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  private ExecutorService getPool(ExecutorService pool) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (pool != null) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      return pool;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    if (this.pool != null) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      return this.pool;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    throw new RuntimeException("Neither AsyncProcess nor request have ExecutorService");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  /**<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * See {@link #submit(ExecutorService, TableName, List, boolean, Batch.Callback, boolean)}.<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  public &lt;CResult&gt; AsyncRequestFuture submit(TableName tableName, List&lt;? extends Row&gt; rows,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback, boolean needResults)<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      throws InterruptedIOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return submit(null, tableName, rows, atLeastOne, callback, needResults);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  /**<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   * Extract from the rows list what we can submit. The rows we can not submit are kept in the<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * list. Does not send requests to replicas (not currently used for anything other<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * than streaming puts anyway).<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   *<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * @param pool ExecutorService to use.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * @param tableName The table for which this request is needed.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * @param callback Batch callback. Only called on success (94 behavior).<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * @param needResults Whether results are needed, or can be discarded.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @param rows - the submitted row. Modified by the method: we remove the rows we took.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * @param atLeastOne true if we should submit at least a subset.<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   */<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  public &lt;CResult&gt; AsyncRequestFuture submit(ExecutorService pool, TableName tableName,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      List&lt;? extends Row&gt; rows, boolean atLeastOne, Batch.Callback&lt;CResult&gt; callback,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      boolean needResults) throws InterruptedIOException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (rows.isEmpty()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return NO_REQS_RESULT;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    List&lt;Action&lt;Row&gt;&gt; retainedActions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    long nonceGroup = ng.getNonceGroup(); // Currently, nonce group is per entire client.<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    // Location errors that happen before we decide what requests to take.<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    List&lt;Exception&gt; locationErrors = null;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    List&lt;Integer&gt; locationErrorRows = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    do {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      // Wait until there is at least one slot for a new task.<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      waitForMaximumCurrentTasks(maxTotalConcurrentTasks - 1);<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>      // Remember the previous decisions about regions or region servers we put in the<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      //  final multi.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      Map&lt;Long, Boolean&gt; regionIncluded = new HashMap&lt;Long, Boolean&gt;();<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      Map&lt;ServerName, Boolean&gt; serverIncluded = new HashMap&lt;ServerName, Boolean&gt;();<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>      int posInList = -1;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      Iterator&lt;? extends Row&gt; it = rows.iterator();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      while (it.hasNext()) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        Row r = it.next();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        HRegionLocation loc;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          if (r == null) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            throw new IllegalArgumentException("#" + id + ", row cannot be null");<a name="line.392"></a>
-<span class="sourceLineNo">393</span>          }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>          // Make sure we get 0-s replica.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>          RegionLocations locs = connection.locateRegion(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>              tableName, r.getRow(), true, true, RegionReplicaUtil.DEFAULT_REPLICA_ID);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>          if (locs == null || locs.isEmpty() || locs.getDefaultRegionLocation() == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            throw new IOException("#" + id + ", no location found, aborting submit for"<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                + " tableName=" + tableName + " rowkey=" + Bytes.toStringBinary(r.getRow()));<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          loc = locs.getDefaultRegionLocation();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        } catch (IOException ex) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          locationErrors = new ArrayList&lt;Exception&gt;();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          locationErrorRows = new ArrayList&lt;Integer&gt;();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          LOG.error("Failed to get region location ", ex);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          // This action failed before creating ars. Retain it, but do not add to submit list.<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          // We will then add it to ars in an already-failed state.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          retainedActions.add(new Action&lt;Row&gt;(r, ++posInList));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          locationErrors.add(ex);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>          locationErrorRows.add(posInList);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          it.remove();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>          break; // Backward compat: we stop considering actions on location error.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>        if (canTakeOperation(loc, regionIncluded, serverIncluded)) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, ++posInList);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>          setNonce(ng, r, action);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          retainedActions.add(action);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          // TODO: replica-get is not supported on this path<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          byte[] regionName = loc.getRegionInfo().getRegionName();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          addAction(loc.getServerName(), regionName, action, actionsByServer, nonceGroup);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          it.remove();<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>    } while (retainedActions.isEmpty() &amp;&amp; atLeastOne &amp;&amp; (locationErrors == null));<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>    if (retainedActions.isEmpty()) return NO_REQS_RESULT;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    return submitMultiActions(tableName, retainedActions, nonceGroup, callback, null, needResults,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      locationErrors, locationErrorRows, actionsByServer, pool);<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>  &lt;CResult&gt; AsyncRequestFuture submitMultiActions(TableName tableName,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      List&lt;Action&lt;Row&gt;&gt; retainedActions, long nonceGroup, Batch.Callback&lt;CResult&gt; callback,<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Object[] results, boolean needResults, List&lt;Exception&gt; locationErrors,<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      List&lt;Integer&gt; locationErrorRows, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      ExecutorService pool) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      tableName, retainedActions, nonceGroup, pool, callback, results, needResults);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Add location errors if any<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    if (locationErrors != null) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      for (int i = 0; i &lt; locationErrors.size(); ++i) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        int originalIndex = locationErrorRows.get(i);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>        Row row = retainedActions.get(originalIndex).getAction();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        ars.manageError(originalIndex, row,<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          Retry.NO_LOCATION_PROBLEM, locationErrors.get(i), null);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    ars.sendMultiAction(actionsByServer, 1, null, false);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return ars;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * Helper that is used when grouping the actions per region server.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   *<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * @param loc - the destination. Must not be null.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @param action - the action to add to the multiaction<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @param actionsByServer the multiaction per server<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param nonceGroup Nonce group.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private static void addAction(ServerName server, byte[] regionName, Action&lt;Row&gt; action,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer, long nonceGroup) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    MultiAction&lt;Row&gt; multiAction = actionsByServer.get(server);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (multiAction == null) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      multiAction = new MultiAction&lt;Row&gt;();<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      actionsByServer.put(server, multiAction);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (action.hasNonce() &amp;&amp; !multiAction.hasNonceGroup()) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      multiAction.setNonceGroup(nonceGroup);<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>    multiAction.add(regionName, action);<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>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * Check if we should send new operations to this region or region server.<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * We're taking into account the past decision; if we have already accepted<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * operation on a given region, we accept all operations for this region.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   *<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * @param loc; the region and the server name we want to use.<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * @return true if this region is considered as busy.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  protected boolean canTakeOperation(HRegionLocation loc,<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                                     Map&lt;Long, Boolean&gt; regionsIncluded,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                                     Map&lt;ServerName, Boolean&gt; serversIncluded) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    long regionId = loc.getRegionInfo().getRegionId();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    Boolean regionPrevious = regionsIncluded.get(regionId);<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>    if (regionPrevious != null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      // We already know what to do with this region.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      return regionPrevious;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span>    Boolean serverPrevious = serversIncluded.get(loc.getServerName());<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    if (Boolean.FALSE.equals(serverPrevious)) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // It's a new region, on a region server that we have already excluded.<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return false;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    AtomicInteger regionCnt = taskCounterPerRegion.get(loc.getRegionInfo().getRegionName());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (regionCnt != null &amp;&amp; regionCnt.get() &gt;= maxConcurrentTasksPerRegion) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Too many tasks on this region already.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      return false;<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>    if (serverPrevious == null) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      // The region is ok, but we need to decide for this region server.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      int newServers = 0; // number of servers we're going to contact so far<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      for (Map.Entry&lt;ServerName, Boolean&gt; kv : serversIncluded.entrySet()) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        if (kv.getValue()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          newServers++;<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // Do we have too many total tasks already?<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      boolean ok = (newServers + tasksInProgress.get()) &lt; maxTotalConcurrentTasks;<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      if (ok) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>        // If the total is fine, is it ok for this individual server?<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        AtomicInteger serverCnt = taskCounterPerServer.get(loc.getServerName());<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        ok = (serverCnt == null || serverCnt.get() &lt; maxConcurrentTasksPerServer);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      if (!ok) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        regionsIncluded.put(regionId, Boolean.FALSE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        serversIncluded.put(loc.getServerName(), Boolean.FALSE);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        return false;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>      serversIncluded.put(loc.getServerName(), Boolean.TRUE);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    } else {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      assert serverPrevious.equals(Boolean.TRUE);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    regionsIncluded.put(regionId, Boolean.TRUE);<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>    return true;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * See {@link #submitAll(ExecutorService, TableName, List, Batch.Callback, Object[])}.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Uses default ExecutorService for this AP (must have been created with one).<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   */<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(TableName tableName,<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    return submitAll(null, tableName, rows, callback, results);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
-<span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * Submit immediately the list of rows, whatever the server status. Kept for backward<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   * compatibility: it allows to be used with the batch interface that return an array of objects.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   *<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * @param pool ExecutorService to use.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * @param tableName name of the table for which the submission is made.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param rows the list of rows.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param callback the callback.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @param results Optional array to return the results thru; backward compat.<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public &lt;CResult&gt; AsyncRequestFuture submitAll(ExecutorService pool, TableName tableName,<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      List&lt;? extends Row&gt; rows, Batch.Callback&lt;CResult&gt; callback, Object[] results) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    List&lt;Action&lt;Row&gt;&gt; actions = new ArrayList&lt;Action&lt;Row&gt;&gt;(rows.size());<a name="line.563"></a>
-<span class="sourceLineNo">564</span><a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // The position will be used by the processBatch to match the object array returned.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    int posInList = -1;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    NonceGenerator ng = this.connection.getNonceGenerator();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    for (Row r : rows) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      posInList++;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (r instanceof Put) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        Put put = (Put) r;<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        if (put.isEmpty()) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          throw new IllegalArgumentException("No columns to insert for #" + (posInList+1)+ " item");<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      Action&lt;Row&gt; action = new Action&lt;Row&gt;(r, posInList);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      setNonce(ng, r, action);<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      actions.add(action);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    AsyncRequestFutureImpl&lt;CResult&gt; ars = createAsyncRequestFuture(<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        tableName, actions, ng.getNonceGroup(), getPool(pool), callback, results, results != null);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    ars.groupAndSendMultiAction(actions, 1);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return ars;<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>  private static void setNonce(NonceGenerator ng, Row r, Action&lt;Row&gt; action) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (!(r instanceof Append) &amp;&amp; !(r instanceof Increment)) return;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    action.setNonce(ng.newNonce()); // Action handles NO_NONCE, so it's ok if ng is disabled.<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
-<span class="sourceLineNo">590</span><a name="line.590"></a>
-<span class="sourceLineNo">591</span>  /**<a name="line.591"></a>
-<span class="sourceLineNo">592</span>   * The context, and return value, for a single submit/submitAll call.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * Note on how this class (one AP submit) works. Initially, all requests are split into groups<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * by server; request is sent to each server in parallel; the RPC calls are not async so a<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * thread per server is used. Every time some actions fail, regions/locations might have<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * changed, so we re-group them by server and region again and send these groups in parallel<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * too. The result, in case of retries, is a "tree" of threads, with parent exiting after<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * scheduling children. This is why lots of code doesn't require any synchronization.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  protected class AsyncRequestFutureImpl&lt;CResult&gt; implements AsyncRequestFuture {<a name="line.600"></a>
-<span class="sourceLineNo">601</span><a name="line.601"></a>
-<span class="sourceLineNo">602</span>    /**<a name="line.602"></a>
-<span class="sourceLineNo">603</span>     * Runnable (that can be submitted to thread pool) that waits for when it's time<a name="line.603"></a>
-<span class="sourceLineNo">604</span>     * to issue replica calls, finds region replicas, groups the requests by replica and<a name="line.604"></a>
-<span class="sourceLineNo">605</span>     * issues the calls (on separate threads, via sendMultiAction).<a name="line.605"></a>
-<span class="sourceLineNo">606</span>     * This is done on a separate thread because we don't want to wait on user thread for<a name="line.606"></a>
-<span class="sourceLineNo">607</span>     * our asynchronous call, and usually we have to wait before making replica calls.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>     */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    private final class ReplicaCallIssuingRunnable implements Runnable {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      private final long startTime;<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      private final List&lt;Action&lt;Row&gt;&gt; initialActions;<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>      public ReplicaCallIssuingRunnable(List&lt;Action&lt;Row&gt;&gt; initialActions, long startTime) {<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.initialActions = initialActions;<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        this.startTime = startTime;<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>      @Override<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      public void run() {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        boolean done = false;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        if (primaryCallTimeoutMicroseconds &gt; 0) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>          try {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>            done = waitUntilDone(startTime * 1000L + primaryCallTimeoutMicroseconds);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          } catch (InterruptedException ex) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>            LOG.error("Replica thread was interrupted - no replica calls: " + ex.getMessage());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            return;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>          }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        if (done) return; // Done within primary timeout<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer =<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        List&lt;Action&lt;Row&gt;&gt; unknownLocActions = new ArrayList&lt;Action&lt;Row&gt;&gt;();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        if (replicaGetIndices == null) {<a name="line.633"></a>
-<span class="sourceLineNo">634</span>          for (int i = 0; i &lt; results.length; ++i) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>            addReplicaActions(i, actionsByServer, unknownLocActions);<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          }<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        } else {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>          for (int replicaGetIndice : replicaGetIndices) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>            addReplicaActions(replicaGetIndice, actionsByServer, unknownLocActions);<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>        if (!actionsByServer.isEmpty()) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          sendMultiAction(actionsByServer, 1, null, unknownLocActions.isEmpty());<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        }<a name="line.644"></a>
-<span class="sourceLineNo">645</span>        if (!unknownLocActions.isEmpty()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>          actionsByServer = new HashMap&lt;ServerName, MultiAction&lt;Row&gt;&gt;();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          for (Action&lt;Row&gt; action : unknownLocActions) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>            addReplicaActionsAgain(action, actionsByServer);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          // Some actions may have completely failed, they are handled inside addAgain.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>          if (!actionsByServer.isEmpty()) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>            sendMultiAction(actionsByServer, 1, null, true);<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>      }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>      /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>       * Add replica actions to action map by server.<a name="line.658"></a>
-<span class="sourceLineNo">659</span>       * @param index Index of the original action.<a name="line.659"></a>
-<span class="sourceLineNo">660</span>       * @param actionsByServer The map by server to add it to.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>       */<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      private void addReplicaActions(int index, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer,<a name="line.662"></a>
-<span class="sourceLineNo">663</span>          List&lt;Action&lt;Row&gt;&gt; unknownReplicaActions) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>        if (results[index] != null) return; // opportunistic. Never goes from non-null to null.<a name="line.664"></a>
-<span class="sourceLineNo">665</span>        Action&lt;Row&gt; action = initialActions.get(index);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        RegionLocations loc = findAllLocationsOrFail(action, true);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>        if (loc == null) return;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>        HRegionLocation[] locs = loc.getRegionLocations();<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        if (locs.length == 1) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>          LOG.warn("No replicas found for " + action.getAction());<a name="line.670"></a>
-<span class="sourceLineNo">671</span>          return;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        synchronized (replicaResultLock) {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          // Don't run replica calls if the original has finished. We could do it e.g. if<a name="line.674"></a>
-<span class="sourceLineNo">675</span>          // original has already failed before first replica call (unlikely given retries),<a name="line.675"></a>
-<span class="sourceLineNo">676</span>          // but that would require additional synchronization w.r.t. returning to caller.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          if (results[index] != null) return;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // We set the number of calls here. After that any path must call setResult/setError.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          // True even for replicas that are not found - if we refuse to send we MUST set error.<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          results[index] = new ReplicaResultState(locs.length);<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        for (int i = 1; i &lt; locs.length; ++i) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          Action&lt;Row&gt; replicaAction = new Action&lt;Row&gt;(action, i);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          if (locs[i] != null) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>            addAction(locs[i].getServerName(), locs[i].getRegionInfo().getRegionName(),<a name="line.685"></a>
-<span class="sourceLineNo">686</span>                replicaAction, actionsByServer, nonceGroup);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          } else {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>            unknownReplicaActions.add(replicaAction);<a name="line.688"></a>
-<span class="sourceLineNo">689</span>          }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      }<a name="line.691"></a>
-<span class="sourceLineNo">692</span><a name="line.692"></a>
-<span class="sourceLineNo">693</span>      private void addReplicaActionsAgain(<a name="line.693"></a>
-<span class="sourceLineNo">694</span>          Action&lt;Row&gt; action, Map&lt;ServerName, MultiAction&lt;Row&gt;&gt; actionsByServer) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        if (action.getReplicaId() == RegionReplicaUtil.DEFAULT_REPLICA_ID) {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>          throw new AssertionError("Cannot have default replica here");<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        HRegionLocation loc = getReplicaLocationOrFail(action);<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        if (loc == null) return;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        addAction(loc.getServerName(), loc.getRegionInfo().getRegionName(),<a name="line.700"></a>
-<span class="sourceLineNo">701</span>            action, actionsByServer, nonceGroup);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      }<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>    /**<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     * Runnable (that can be submitted to thread pool) that submits MultiAction to a<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * single server. The server call is synchronous, therefore we do it on a thread pool.<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     */<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    private final class SingleServerRequestRunnable implements Runnable {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      private final MultiAction&lt;Row&gt; multiAction;<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      private final int numAttempt;<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      private final ServerName server;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>      private SingleServerRequestRunnable(<a name="line.715"></a>
-<span class="sourceLineNo">716</span>          MultiAction&lt;Row&gt; multiAction, int numAttempt, ServerName server,<a name="line.716"></a>
-<span class="sourceLineNo">717</span>          Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>        this.multiAction = multiAction;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        this.numAttempt = numAttempt;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        this.server = server;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        this.callsInProgress = callsInProgress;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>      @Override<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      public void run() {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        MultiResponse res;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        MultiServerCallable&lt;Row&gt; callable = null;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>        try {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>          callable = createCallable(server, tableName, multiAction);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>          try {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>            RpcRetryingCaller&lt;MultiResponse&gt; caller = createCaller(callable);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>            if (callsInProgress != null) callsInProgress.add(callable);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>            res = caller.callWithoutRetries(callable, timeout);<a name="line.733"></a>
-<span class="sourceLineNo">734</span><a name="line.734"></a>
-<span class="sourceLineNo">735</span>            if (res == null) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>              // Cancelled<a name="line.736"></a>
-<span class="sourceLineNo">737</span>              return;<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>          } catch (IOException e) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            // The service itself failed . It may be an error coming from the communication<a name="line.741"></a>
-<span class="sourceLineNo">742</span>            //   layer, but, as well, a functional error raised by the server.<a name="line.742"></a>
-<span class="sourceLineNo">743</span>            receiveGlobalFailure(multiAction, server, numAttempt, e);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>            return;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          } catch (Throwable t) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>            // This should not happen. Let's log &amp; retry anyway.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>            LOG.error("#" + id + ", Caught throwable while calling. This is unexpected." +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>                " Retrying. Server is " + server + ", tableName=" + tableName, t);<a name="line.748"></a>
-<span class="sourceLineNo">749</span>            receiveGlobalFailure(multiAction, server, numAttempt, t);<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            return;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>          }<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>          // Normal case: we received an answer from the server, and it's not an exception.<a name="line.753"></a>
-<span class="sourceLineNo">754</span>          receiveMultiAction(multiAction, server, res, numAttempt);<a name="line.754"></a>
-<span class="sourceLineNo">755</span>        } catch (Throwable t) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // Something really bad happened. We are on the send thread that will now die.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          LOG.error("Internal AsyncProcess #" + id + " error for "<a name="line.757"></a>
-<span class="sourceLineNo">758</span>              + tableName + " processing for " + server, t);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          throw new RuntimeException(t);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        } finally {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          decTaskCounters(multiAction.getRegions(), server);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>          if (callsInProgress != null &amp;&amp; callable != null) {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>            callsInProgress.remove(callable);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          }<a name="line.764"></a>
-<span class="sourceLineNo">765</span>        }<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    private final Batch.Callback&lt;CResult&gt; callback;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    private final BatchErrors errors;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    private final ConnectionImplementation.ServerErrorTracker errorsByServer;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    private final ExecutorService pool;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    private final Set&lt;MultiServerCallable&lt;Row&gt;&gt; callsInProgress;<a name="line.773"></a>
-<s

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html
index ee363fc..16f504e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.MasterServiceStubMaker.html
@@ -43,2273 +43,2227 @@
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.MultiActionResultTooLarge;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.RegionTooBusyException;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.RetryImmediatelyException;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.ServerName;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.TableName;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.security.User;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.zookeeper.KeeperException;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>import javax.annotation.Nullable;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>import java.io.Closeable;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import java.io.IOException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import java.io.InterruptedIOException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import java.net.InetAddress;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import java.net.InetSocketAddress;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import java.util.ArrayList;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import java.util.Date;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import java.util.List;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import java.util.concurrent.BlockingQueue;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import java.util.concurrent.ConcurrentMap;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import java.util.concurrent.ExecutorService;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import java.util.concurrent.TimeUnit;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>/**<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.111"></a>
-<span class="sourceLineNo">112</span>@InterfaceAudience.Private<a name="line.112"></a>
-<span class="sourceLineNo">113</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  private final boolean hostnamesCanChange;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  private final long pause;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private final boolean useMetaReplicas;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private final int numTries;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  final int rpcTimeout;<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>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.131"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ServerName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.TableName;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.security.User;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.zookeeper.KeeperException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>import javax.annotation.Nullable;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>import java.io.Closeable;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import java.io.IOException;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import java.io.InterruptedIOException;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import java.net.InetAddress;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import java.net.InetSocketAddress;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import java.util.ArrayList;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import java.util.Date;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import java.util.List;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import java.util.concurrent.BlockingQueue;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import java.util.concurrent.ConcurrentMap;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import java.util.concurrent.ExecutorService;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import java.util.concurrent.TimeUnit;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>/**<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.103"></a>
+<span class="sourceLineNo">104</span> */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.107"></a>
+<span class="sourceLineNo">108</span>@InterfaceAudience.Private<a name="line.108"></a>
+<span class="sourceLineNo">109</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private final boolean hostnamesCanChange;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  private final long pause;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  private final boolean useMetaReplicas;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private final int numTries;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  final int rpcTimeout;<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private final AsyncProcess asyncProcess;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  // single tracker per connection<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  private final ServerStatisticTracker stats;<a name="line.131"></a>
 <span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private final AsyncProcess asyncProcess;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  // single tracker per connection<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  private final ServerStatisticTracker stats;<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  private volatile boolean closed;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private volatile boolean aborted;<a name="line.138"></a>
+<span class="sourceLineNo">133</span>  private volatile boolean closed;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private volatile boolean aborted;<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // package protected for the tests<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  ClusterStatusListener clusterStatusListener;<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
 <span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>  // package protected for the tests<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  ClusterStatusListener clusterStatusListener;<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private final Object metaRegionLock = new Object();<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private final Object masterAndZKLock = new Object();<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  // thread executor shared by all HTableInterface instances created<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  // by this connection<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private volatile ExecutorService batchPool = null;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  // by this connection<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private volatile boolean cleanupPool = false;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private final Configuration conf;<a name="line.161"></a>
+<span class="sourceLineNo">140</span>  private final Object metaRegionLock = new Object();<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final Object masterAndZKLock = new Object();<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  // thread executor shared by all HTableInterface instances created<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  // by this connection<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private volatile ExecutorService batchPool = null;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  // by this connection<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private volatile boolean cleanupPool = false;<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private final Configuration conf;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  private final TableConfiguration tableConfig;<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final TableConfiguration tableConfig;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  // Client rpc instance.<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private RpcClient rpcClient;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  private final MetaCache metaCache;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private final MetricsConnection metrics;<a name="line.171"></a>
+<span class="sourceLineNo">163</span>  // Client rpc instance.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private RpcClient rpcClient;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final MetaCache metaCache;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  private final MetricsConnection metrics;<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  protected User user;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.171"></a>
 <span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  protected User user;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.173"></a>
 <span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>  private final RetryingCallerInterceptor interceptor;<a name="line.175"></a>
 <span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private final RetryingCallerInterceptor interceptor;<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>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   Registry registry;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private final ClientBackoffPolicy backoffPolicy;<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>   * constructor<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * @param conf Configuration object<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  ConnectionImplementation(Configuration conf,<a name="line.192"></a>
-<span class="sourceLineNo">193</span>                           ExecutorService pool, User user) throws IOException {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    this.conf = conf;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.user = user;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    this.batchPool = pool;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    this.closed = false;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // how many times to try, one more than max *retry* time<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    this.rpcTimeout = conf.getInt(<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        if (nonceGenerator == null) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    } else {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      nonceGenerator = new NoNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      this.metrics = new MetricsConnection(this);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    } else {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      this.metrics = null;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>            ClusterStatusListener.Listener.class);<a name="line.237"></a>
+<span class="sourceLineNo">177</span>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   Registry registry;<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>  private final ClientBackoffPolicy backoffPolicy;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * constructor<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @param conf Configuration object<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  ConnectionImplementation(Configuration conf,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                           ExecutorService pool, User user) throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    this.conf = conf;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    this.user = user;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.batchPool = pool;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    this.closed = false;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // how many times to try, one more than max *retry* time<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.rpcTimeout = conf.getInt(<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (nonceGenerator == null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    } else {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      nonceGenerator = new NoNonceGenerator();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      this.metrics = new MetricsConnection(this);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      this.metrics = null;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.232"></a>
+<span class="sourceLineNo">233</span>            ClusterStatusListener.Listener.class);<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>    try {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      this.registry = setupRegistry();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      retrieveClusterId();<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.registry = setupRegistry();<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      retrieveClusterId();<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>      // Do we publish the status?<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      if (shouldListen) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        if (listenerClass == null) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.248"></a>
-<span class="sourceLineNo">249</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        } else {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.251"></a>
-<span class="sourceLineNo">252</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>                @Override<a name="line.253"></a>
-<span class="sourceLineNo">254</span>                public void newDead(ServerName sn) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>                  clearCaches(sn);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>                  rpcClient.cancelConnections(sn);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>              }, conf, listenerClass);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    } catch (Throwable e) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      // avoid leaks: registry, rpcClient, ...<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      LOG.debug("connection construction failed", e);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      close();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      throw e;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  /**<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param conn The connection for which to replace the generator.<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @return old nonce generator.<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  @VisibleForTesting<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      + cnm.getClass().getName());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    nonceGenerator = cnm;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    return ng;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * Look for an exception we know in the remote exception:<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * - hadoop.ipc wrapped exceptions<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * - nested exceptions<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   *<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   *            ThrottlingException<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @return null if we didn't find the exception, the exception otherwise.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public static Throwable findException(Object exception) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (exception == null || !(exception instanceof Throwable)) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      return null;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Throwable cur = (Throwable) exception;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    while (cur != null) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      if (cur instanceof RegionMovedException || cur instanceof RegionOpeningException<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          || cur instanceof RegionTooBusyException || cur instanceof ThrottlingException<a name="line.301"></a>
-<span class="sourceLineNo">302</span>          || cur instanceof RetryImmediatelyException) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return cur;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      }<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      if (cur instanceof RemoteException) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        RemoteException re = (RemoteException) cur;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        cur = re.unwrapRemoteException(<a name="line.307"></a>
-<span class="sourceLineNo">308</span>            RegionOpeningException.class, RegionMovedException.class,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>            RegionTooBusyException.class);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        if (cur == null) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          cur = re.unwrapRemoteException();<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        // unwrapRemoteException can return the exception given as a parameter when it cannot<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        //  unwrap it. In this case, there is no need to look further<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        // noinspection ObjectEquality<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        if (cur == re) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          return null;<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      } else {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        cur = cur.getCause();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">239</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // Do we publish the status?<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (shouldListen) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        if (listenerClass == null) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.244"></a>
+<span class="sourceLineNo">245</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.247"></a>
+<span class="sourceLineNo">248</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                @Override<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                public void newDead(ServerName sn) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                  clearCaches(sn);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                  rpcClient.cancelConnections(sn);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>              }, conf, listenerClass);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      }<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (Throwable e) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      // avoid leaks: registry, rpcClient, ...<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      LOG.debug("connection construction failed", e);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      close();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      throw e;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * @param conn The connection for which to replace the generator.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * @return old nonce generator.<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  @VisibleForTesting<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      + cnm.getClass().getName());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    nonceGenerator = cnm;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return ng;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    return getTable(TableName.valueOf(tableName));<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    return getTable(TableName.valueOf(tableName));<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>  @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    return getTable(tableName, getBatchPool());<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>  @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    if (params.getTableName() == null) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (params.getPool() == null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<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 null;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  @Override<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return getTable(TableName.valueOf(tableName));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  @Override<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    return getTable(TableName.valueOf(tableName));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return getTable(tableName, getBatchPool());<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    if (params.getTableName() == null) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (params.getPool() == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<a name="line.366"></a>
+<span class="sourceLineNo">323</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<a name="line.331"></a>
+<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>  @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    return new HRegionLocator(tableName, this);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  public Admin getAdmin() throws IOException {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    return new HBaseAdmin(this);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>  @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public MetricsConnection getConnectionMetrics() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return this.metrics;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  private ExecutorService getBatchPool() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (batchPool == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      synchronized (this) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        if (batchPool == null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.353"></a>
+<span class="sourceLineNo">354</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          this.cleanupPool = true;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    return this.batchPool;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    // shared HTable thread executor not yet initialized<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    if (maxThreads == 0) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.366"></a>
 <span class="sourceLineNo">367</span>    }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.369"></a>
+<span class="sourceLineNo">368</span>    if (coreThreads == 0) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<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>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return new HRegionLocator(tableName, this);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  public Admin getAdmin() throws IOException {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    return new HBaseAdmin(this);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>  @Override<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  public MetricsConnection getConnectionMetrics() {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    return this.metrics;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  private ExecutorService getBatchPool() {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    if (batchPool == null) {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      synchronized (this) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        if (batchPool == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.398"></a>
-<span class="sourceLineNo">399</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          this.cleanupPool = true;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      }<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    }<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    return this.batchPool;<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>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    // shared HTable thread executor not yet initialized<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    if (maxThreads == 0) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (coreThreads == 0) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    }<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    if (workQueue == null) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      workQueue =<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.420"></a>
-<span class="sourceLineNo">421</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.421"></a>
-<span class="sourceLineNo">422</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        coreThreads,<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        maxThreads,<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        keepAliveTime,<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        TimeUnit.SECONDS,<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        workQueue,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    if (this.metaLookupPool == null) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      synchronized (this) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (this.metaLookupPool == null) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          //Some of the threads would be used for meta replicas<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          //the queue is full, a new thread will be started<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          this.metaLookupPool = getThreadPool(<a name="line.443"></a>
-<span class="sourceLineNo">444</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.444"></a>
-<span class="sourceLineNo">445</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.445"></a>
-<span class="sourceLineNo">446</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return this.metaLookupPool;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    return batchPool;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
+<span class="sourceLineNo">371</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    if (workQueue == null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      workQueue =<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        coreThreads,<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        maxThreads,<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        keepAliveTime,<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        TimeUnit.SECONDS,<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        workQueue,<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    if (this.metaLookupPool == null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      synchronized (this) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (this.metaLookupPool == null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          //Some of the threads would be used for meta replicas<a name="line.394"></a>
+<span class="sourceLineNo">395</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.395"></a>
+<span class="sourceLineNo">396</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.396"></a>
+<span class="sourceLineNo">397</span>          //the queue is full, a new thread will be started<a name="line.397"></a>
+<span class="sourceLineNo">398</span>          this.metaLookupPool = getThreadPool(<a name="line.398"></a>
+<span class="sourceLineNo">399</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.399"></a>
+<span class="sourceLineNo">400</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.400"></a>
+<span class="sourceLineNo">401</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      }<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return this.metaLookupPool;<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>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    return batchPool;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>  private void shutdownPools() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      shutdownBatchPool(this.batchPool);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    pool.shutdown();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        pool.shutdownNow();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    } catch (InterruptedException e) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      pool.shutdownNow();<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>  /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * @return The cluster registry implementation to use.<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private Registry setupRegistry() throws IOException {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    return RegistryFactory.getRegistry(this);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span>  /**<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   * For tests only.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  @VisibleForTesting<a name="line.446"></a>
+<span class="sourceLineNo">447</span>  RpcClient getRpcClient() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    return rpcClient;<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>   * An identifier that will remain the same for a given connection.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>   */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>  public String toString(){<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    return "hconnection-0x" + Integer.toHexString(hashCode());<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>  protected String clusterId = null;<a name="line.459"></a>
 <span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private void shutdownPools() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      shutdownBatchPool(this.batchPool);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.466"></a>
+<span class="sourceLineNo">461</span>  protected void retrieveClusterId() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    if (clusterId != null) return;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    this.clusterId = this.registry.getClusterId();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    if (clusterId == null) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      clusterId = HConstants.CLUSTER_ID_DEFAULT;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      LOG.debug("clusterid came back null, using default " + clusterId);<a name="line.466"></a>
 <span class="sourceLineNo">467</span>    }<a name="line.467"></a>
 <span class="sourceLineNo">468</span>  }<a name="line.468"></a>
 <span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    pool.shutdown();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        pool.shutdownNow();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    } catch (InterruptedException e) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      pool.shutdownNow();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  /**<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @return The cluster registry implementation to use.<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   */<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  private Registry setupRegistry() throws IOException {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    return RegistryFactory.getRegistry(this);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>  /**<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * For tests only.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   */<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  @VisibleForTesting<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  RpcClient getRpcClient() {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return rpcClient;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * An identifier that will remain the same for a given connection.<a name="line.497"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public Configuration getConfiguration() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return this.conf;<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>  private void checkIfBaseNodeAvailable(ZooKeeperWatcher zkw)<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    throws MasterNotRunningException {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    String errorMsg;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    try {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (ZKUtil.checkExists(zkw, zkw.baseZNode) == -1) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        errorMsg = "The node " + zkw.baseZNode+" is not in ZooKeeper. "<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/serialized-form.html b/testdevapidocs/serialized-form.html
index a857885..58b8382 100644
--- a/testdevapidocs/serialized-form.html
+++ b/testdevapidocs/serialized-form.html
@@ -69,6 +69,11 @@
 <li class="blockList">
 <h2 title="Package">Package&nbsp;org.apache.hadoop.hbase</h2>
 <ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.CallQueueTooBigException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.CallQueueTooBigException extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.CellComparator">
 <!--   -->
 </a>
@@ -521,6 +526,185 @@
 </ul>
 </li>
 <li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.hadoop.hbase.exceptions</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.ConnectionClosingException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.ConnectionClosingException extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-8980028569652624236L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.DeserializationException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.DeserializationException extends org.apache.hadoop.hbase.exceptions.HBaseException implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.FailedSanityCheckException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.FailedSanityCheckException extends org.apache.hadoop.hbase.DoNotRetryIOException implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1788783640409186240L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.HBaseException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.HBaseException extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.IllegalArgumentIOException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.IllegalArgumentIOException extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.LockTimeoutException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.LockTimeoutException extends org.apache.hadoop.hbase.DoNotRetryIOException implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-1770764924258999825L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.MergeRegionException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.MergeRegionException extends org.apache.hadoop.hbase.client.DoNotRetryRegionException implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>4970899110066124122L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.OperationConflictException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.OperationConflictException extends org.apache.hadoop.hbase.DoNotRetryIOException implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-8930333627489862872L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException extends org.apache.hadoop.hbase.DoNotRetryIOException implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>4595751007554273567L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.PreemptiveFastFailException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.PreemptiveFastFailException extends <a href="http://docs.oracle.com/javase/7/docs/api/java/net/ConnectException.html?is-external=true" title="class or interface in java.net">ConnectException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>7129103682617007177L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>failureCount</h4>
+<pre>long failureCount</pre>
+</li>
+<li class="blockList">
+<h4>timeOfFirstFailureMilliSec</h4>
+<pre>long timeOfFirstFailureMilliSec</pre>
+</li>
+<li class="blockListLast">
+<h4>timeOfLatestAttemptMilliSec</h4>
+<pre>long timeOfLatestAttemptMilliSec</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.RegionInRecoveryException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.RegionInRecoveryException extends org.apache.hadoop.hbase.NotServingRegionException implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>327302071153799L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.RegionMovedException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.RegionMovedException extends org.apache.hadoop.hbase.NotServingRegionException implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-7232903522310558396L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>hostname</h4>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hostname</pre>
+</li>
+<li class="blockList">
+<h4>port</h4>
+<pre>int port</pre>
+</li>
+<li class="blockList">
+<h4>startCode</h4>
+<pre>long startCode</pre>
+</li>
+<li class="blockListLast">
+<h4>locationSeqNum</h4>
+<pre>long locationSeqNum</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.RegionOpeningException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.RegionOpeningException extends org.apache.hadoop.hbase.NotServingRegionException implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-7232903522310558395L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.TimeoutIOException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.TimeoutIOException extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.exceptions.UnknownProtocolException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.exceptions.UnknownProtocolException extends org.apache.hadoop.hbase.DoNotRetryIOException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>protocol</h4>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">T</a>&gt; protocol</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
 <h2 title="Package">Package&nbsp;org.apache.hadoop.hbase.filter</h2>
 <ul class="blockList">
 <li class="blockList"><a name="org.apache.hadoop.hbase.filter.IncompatibleFilterException">
@@ -879,11 +1063,6 @@
 </li>
 </ul>
 </li>
-<li class="blockList"><a name="org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException">
-<!--   -->
-</a>
-<h3>Class org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException extends <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
-</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.ipc.ServerNotRunningYetException">
 <!--   -->
 </a>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html
index 4e2d5b2..77ae142 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.391">TestAsyncProcess.MyConnectionImpl2</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.399">TestAsyncProcess.MyConnectionImpl2</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyConnectionImpl</a></pre>
 <div class="block">Returns our async process.</div>
 </li>
@@ -302,286 +302,282 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#finalize()">finalize</a></strong>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></td>
-<td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#findException(java.lang.Object)">findException</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg0)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.Admin</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getAdmin()">getAdmin</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getAdmin(org.apache.hadoop.hbase.ServerName)">getAdmin</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getAdmin(org.apache.hadoop.hbase.ServerName,%20boolean)">getAdmin</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0,
                 boolean&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.AsyncProcess</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getAsyncProcess()">getAsyncProcess</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getBackoffPolicy()">getBackoffPolicy</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.BufferedMutator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getBufferedMutator(org.apache.hadoop.hbase.client.BufferedMutatorParams)">getBufferedMutator</a></strong>(org.apache.hadoop.hbase.client.BufferedMutatorParams&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.BufferedMutator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getBufferedMutator(org.apache.hadoop.hbase.TableName)">getBufferedMutator</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getCachedLocation(org.apache.hadoop.hbase.TableName,%20byte[])">getCachedLocation</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                   byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ClientService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getClient(org.apache.hadoop.hbase.ServerName)">getClient</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getConfiguration()">getConfiguration</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.MetricsConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getConnectionMetrics()">getConnectionMetrics</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getCurrentBatchPool()">getCurrentBatchPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getCurrentMetaLookupPool()">getCurrentMetaLookupPool</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getCurrentNrHRS()">getCurrentNrHRS</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getHTableDescriptor(byte[])">getHTableDescriptor</a></strong>(byte[]&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getHTableDescriptor(org.apache.hadoop.hbase.TableName)">getHTableDescriptor</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getHTableDescriptors(java.util.List)">getHTableDescriptors</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getHTableDescriptorsByTableName(java.util.List)">getHTableDescriptorsByTableName</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.TableName&gt;&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.MasterKeepAliveConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getKeepAliveMasterService()">getKeepAliveMasterService</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.client.ZooKeeperKeepAliveConnection</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getKeepAliveZooKeeperWatcher()">getKeepAliveZooKeeperWatcher</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService.BlockingInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getMaster()">getMaster</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.RpcRetryingCallerFactory</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration)">getNewRpcRetryingCallerFactory</a></strong>(org.apache.hadoop.conf.Configuration&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.NonceGenerator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getNonceGenerator()">getNonceGenerator</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getNumberOfCachedRegionLocations(org.apache.hadoop.hbase.TableName)">getNumberOfCachedRegionLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getRegionCachePrefetch(byte[])">getRegionCachePrefetch</a></strong>(byte[]&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getRegionCachePrefetch(org.apache.hadoop.hbase.TableName)">getRegionCachePrefetch</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getRegionLocation(byte[],%20byte[],%20boolean)">getRegionLocation</a></strong>(byte[]&nbsp;arg0,
                                   byte[]&nbsp;arg1,
                                   boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getRegionLocation(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean)">getRegionLocation</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                   byte[]&nbsp;arg1,
                                   boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.RegionLocator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getRegionLocator(org.apache.hadoop.hbase.TableName)">getRegionLocator</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.ipc.RpcClient</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getRpcClient()">getRpcClient</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.ServerStatisticTracker</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getStatisticsTracker()">getStatisticsTracker</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getStubKey(java.lang.String,%20java.lang.String,%20int,%20boolean)">getStubKey</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0,
                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg1,
                     int&nbsp;arg2,
                     boolean&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getTable(byte[])">getTable</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getTable(byte[],%20java.util.concurrent.ExecutorService)">getTable</a></strong>(byte[]&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getTable(java.lang.String)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getTable(java.lang.String,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getTable(org.apache.hadoop.hbase.TableName)">getTable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.HTableInterface</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getTable(org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService)">getTable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getTableNames()">getTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.client.TableState</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#getTableState(org.apache.hadoop.hbase.TableName)">getTableState</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static org.apache.hadoop.hbase.client.NonceGenerator</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#injectNonceGeneratorForTesting(org.apache.hadoop.hbase.client.ClusterConnection,%20org.apache.hadoop.hbase.client.NonceGenerator)">injectNonceGeneratorForTesting</a></strong>(org.apache.hadoop.hbase.client.ClusterConnection&nbsp;arg0,
                                                             org.apache.hadoop.hbase.client.NonceGenerator&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isAborted()">isAborted</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isClosed()">isClosed</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isDeadServer(org.apache.hadoop.hbase.ServerName)">isDeadServer</a></strong>(org.apache.hadoop.hbase.ServerName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isMasterRunning()">isMasterRunning</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isTableAvailable(byte[])">isTableAvailable</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isTableAvailable(byte[],%20byte[][])">isTableAvailable</a></strong>(byte[]&nbsp;arg0,
                                 byte[][]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isTableAvailable(org.apache.hadoop.hbase.TableName)">isTableAvailable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isTableAvailable(org.apache.hadoop.hbase.TableName,%20byte[][])">isTableAvailable</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                 byte[][]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isTableDisabled(byte[])">isTableDisabled</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isTableDisabled(org.apache.hadoop.hbase.TableName)">isTableDisabled</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isTableEnabled(byte[])">isTableEnabled</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#isTableEnabled(org.apache.hadoop.hbase.TableName)">isTableEnabled</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.TableName[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#listTableNames()">listTableNames</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HTableDescriptor[]</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#listTables()">listTables</a></strong>()</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#locateRegion(byte[])">locateRegion</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#locateRegion(byte[],%20byte[])">locateRegion</a></strong>(byte[]&nbsp;arg0,
                         byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean)">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                         byte[]&nbsp;arg1,
                         boolean&nbsp;arg2,
                         boolean&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#locateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20boolean,%20boolean,%20int)">locateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
                         byte[]&nbsp;row,
@@ -589,27 +585,27 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
                         boolean&nbsp;retry,
                         int&nbsp;replicaId)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#locateRegions(byte[])">locateRegions</a></strong>(byte[]&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#locateRegions(byte[],%20boolean,%20boolean)">locateRegions</a></strong>(byte[]&nbsp;arg0,
                           boolean&nbsp;arg1,
                           boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#locateRegions(org.apache.hadoop.hbase.TableName)">locateRegions</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#locateRegions(org.apache.hadoop.hbase.TableName,%20boolean,%20boolean)">locateRegions</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                           boolean&nbsp;arg1,
                           boolean&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#processBatch(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                         byte[]&nbsp;arg1,
@@ -618,7 +614,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#processBatch(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[])">processBatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                         org.apache.hadoop.hbase.TableName&nbsp;arg1,
@@ -627,7 +623,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#processBatchCallback(java.util.List,%20byte[],%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                                         byte[]&nbsp;arg1,
@@ -637,7 +633,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>&lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#processBatchCallback(java.util.List,%20org.apache.hadoop.hbase.TableName,%20java.util.concurrent.ExecutorService,%20java.lang.Object[],%20org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)">processBatchCallback</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends org.apache.hadoop.hbase.client.Row&gt;&nbsp;arg0,
                                         org.apache.hadoop.hbase.TableName&nbsp;arg1,
@@ -647,67 +643,67 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#releaseMaster(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState)">releaseMaster</a></strong>(org.apache.hadoop.hbase.client.ConnectionImplementation.MasterServiceState&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#releaseZooKeeperWatcher(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher)">releaseZooKeeperWatcher</a></strong>(org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher&nbsp;arg0)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#relocateRegion(byte[],%20byte[])">relocateRegion</a></strong>(byte[]&nbsp;arg0,
                             byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.HRegionLocation</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[])">relocateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                             byte[]&nbsp;arg1)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.RegionLocations</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#relocateRegion(org.apache.hadoop.hbase.TableName,%20byte[],%20int)">relocateRegion</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                             byte[]&nbsp;arg1,
                             int&nbsp;arg2)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#retrieveClusterId()">retrieveClusterId</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#setRegionCachePrefetch(byte[],%20boolean)">setRegionCachePrefetch</a></strong>(byte[]&nbsp;arg0,
                                             boolean&nbsp;arg1)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#setRegionCachePrefetch(org.apache.hadoop.hbase.TableName,%20boolean)">setRegionCachePrefetch</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                             boolean&nbsp;arg1)</code>
 <div class="block"><strong>Deprecated.</strong>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#toString()">toString</a></strong>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#updateCachedLocation(org.apache.hadoop.hbase.HRegionInfo,%20org.apache.hadoop.hbase.ServerName,%20org.apache.hadoop.hbase.ServerName,%20long)">updateCachedLocation</a></strong>(org.apache.hadoop.hbase.HRegionInfo&nbsp;arg0,
                                         org.apache.hadoop.hbase.ServerName&nbsp;arg1,
                                         org.apache.hadoop.hbase.ServerName&nbsp;arg2,
                                         long&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#updateCachedLocations(byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(byte[]&nbsp;arg0,
                                           byte[]&nbsp;arg1,
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg2,
                                           org.apache.hadoop.hbase.HRegionLocation&nbsp;arg3)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.ServerName)">updateCachedLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                           byte[]&nbsp;arg1,
@@ -715,7 +711,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg3,
                                           org.apache.hadoop.hbase.ServerName&nbsp;arg4)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><strong><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#updateCachedLocations(org.apache.hadoop.hbase.TableName,%20byte[],%20java.lang.Object,%20org.apache.hadoop.hbase.HRegionLocation)">updateCachedLocations</a></strong>(org.apache.hadoop.hbase.TableName&nbsp;arg0,
                                           byte[]&nbsp;arg1,
@@ -750,7 +746,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>hrl</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#line.392">hrl</a></pre>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#line.400">hrl</a></pre>
 </li>
 </ul>
 <a name="usedRegions">
@@ -759,7 +755,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>usedRegions</h4>
-<pre>final&nbsp;boolean[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#line.393">usedRegions</a></pre>
+<pre>final&nbsp;boolean[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#line.401">usedRegions</a></pre>
 </li>
 </ul>
 <a name="RETRIES_BY_SERVER_KEY">
@@ -840,7 +836,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess.MyConnectionImpl2</h4>
-<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#line.395">TestAsyncProcess.MyConnectionImpl2</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;&nbsp;hrl)
+<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#line.403">TestAsyncProcess.MyConnectionImpl2</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.HRegionLocation&gt;&nbsp;hrl)
                                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
@@ -860,7 +856,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
 <ul class="blockList">
 <li class="blockList">
 <h4>locateRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.RegionLocations&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#line.402">locateRegion</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+<pre>public&nbsp;org.apache.hadoop.hbase.RegionLocations&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html#line.410">locateRegion</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
                                                    byte[]&nbsp;row,
                                                    boolean&nbsp;useCache,
                                                    boolean&nbsp;retry,
@@ -885,15 +881,6 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.
                                                                            org.apache.hadoop.hbase.client.NonceGenerator&nbsp;arg1)</pre>
 </li>
 </ul>
-<a name="findException(java.lang.Object)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>findException</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.html#line.0">findException</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;arg0)</pre>
-</li>
-</ul>
 <a name="getTable(java.lang.String)">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyThreadPoolExecutor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyThreadPoolExecutor.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyThreadPoolExecutor.html
index 0aca266..556bb3e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyThreadPoolExecutor.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.MyThreadPoolExecutor.html
@@ -113,7 +113,7 @@
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1056">TestAsyncProcess.MyThreadPoolExecutor</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1085">TestAsyncProcess.MyThreadPoolExecutor</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a></pre>
 </li>
 </ul>
@@ -215,7 +215,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncProcess.MyThreadPoolExecutor</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyThreadPoolExecutor.html#line.1057">TestAsyncProcess.MyThreadPoolExecutor</a>(int&nbsp;coreThreads,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyThreadPoolExecutor.html#line.1086">TestAsyncProcess.MyThreadPoolExecutor</a>(int&nbsp;coreThreads,
                                      int&nbsp;maxThreads,
                                      long&nbsp;keepAliveTime,
                                      <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;timeunit,
@@ -236,7 +236,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>submit</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyThreadPoolExecutor.html#line.1063">submit</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;runnable)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.MyThreadPoolExecutor.html#line.1092">submit</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;runnable)</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true#submit(java.lang.Runnable)" title="class or interface in java.util.concurrent">submit</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html
index 522e6fb..2daa76b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1008">TestAsyncProcess.RR</a>
+<pre>private static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.1037">TestAsyncProcess.RR</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a>&gt;</pre>
 <div class="block">After reading TheDailyWtf, I always wanted to create a MyBoolean enum like this!</div>
 </li>
@@ -203,7 +203,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>TRUE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1009">TRUE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1038">TRUE</a></pre>
 </li>
 </ul>
 <a name="FALSE">
@@ -212,7 +212,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>FALSE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1010">FALSE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1039">FALSE</a></pre>
 </li>
 </ul>
 <a name="DONT_CARE">
@@ -221,7 +221,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>DONT_CARE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1011">DONT_CARE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1040">DONT_CARE</a></pre>
 </li>
 </ul>
 <a name="FAILED">
@@ -230,7 +230,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FAILED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1012">FAILED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1041">FAILED</a></pre>
 </li>
 </ul>
 </li>
@@ -247,7 +247,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/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1008">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1037">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:
@@ -264,7 +264,7 @@ for (TestAsyncProcess.RR c : TestAsyncProcess.RR.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1008">valueOf</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html" title="enum in org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.RR.html#line.1037">valueOf</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.ResponseGenerator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.ResponseGenerator.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.ResponseGenerator.html
index 0d95544..e48c9fc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.ResponseGenerator.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncProcess.ResponseGenerator.html
@@ -91,7 +91,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.342">TestAsyncProcess.ResponseGenerator</a></pre>
+<pre>private static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.html#line.350">TestAsyncProcess.ResponseGenerator</a></pre>
 </li>
 </ul>
 </div>
@@ -137,7 +137,7 @@
 <ul class="blockListLast">
 <li class="blockList">
 <h4>addResponse</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.ResponseGenerator.html#line.343">addResponse</a>(org.apache.hadoop.hbase.client.MultiResponse&nbsp;mr,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncProcess.ResponseGenerator.html#line.351">addResponse</a>(org.apache.hadoop.hbase.client.MultiResponse&nbsp;mr,
                byte[]&nbsp;regionName,
                org.apache.hadoop.hbase.client.Action&lt;org.apache.hadoop.hbase.client.Row&gt;&nbsp;a)</pre>
 </li>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html
index ee363fc..16f504e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.ServerErrors.html
@@ -43,2273 +43,2227 @@
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.MultiActionResultTooLarge;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.RegionTooBusyException;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.RetryImmediatelyException;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.ServerName;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.TableName;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.security.User;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.zookeeper.KeeperException;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>import javax.annotation.Nullable;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>import java.io.Closeable;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import java.io.IOException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import java.io.InterruptedIOException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import java.net.InetAddress;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import java.net.InetSocketAddress;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import java.util.ArrayList;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import java.util.Date;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import java.util.List;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import java.util.concurrent.BlockingQueue;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import java.util.concurrent.ConcurrentMap;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import java.util.concurrent.ExecutorService;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import java.util.concurrent.TimeUnit;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>/**<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.111"></a>
-<span class="sourceLineNo">112</span>@InterfaceAudience.Private<a name="line.112"></a>
-<span class="sourceLineNo">113</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  private final boolean hostnamesCanChange;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  private final long pause;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private final boolean useMetaReplicas;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private final int numTries;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  final int rpcTimeout;<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>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.131"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ServerName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.TableName;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicy;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.RequestConverter;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.AdminProtos;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.security.User;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.ExceptionUtil;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.zookeeper.KeeperException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>import javax.annotation.Nullable;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>import java.io.Closeable;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import java.io.IOException;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import java.io.InterruptedIOException;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import java.lang.reflect.UndeclaredThrowableException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import java.net.InetAddress;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import java.net.InetSocketAddress;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import java.util.ArrayList;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import java.util.Date;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import java.util.List;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import java.util.concurrent.BlockingQueue;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import java.util.concurrent.ConcurrentMap;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import java.util.concurrent.ExecutorService;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import java.util.concurrent.TimeUnit;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>/**<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Main implementation of {@link Connection} and {@link ClusterConnection} interfaces.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * Encapsulates connection to zookeeper and regionservers.<a name="line.103"></a>
+<span class="sourceLineNo">104</span> */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>@edu.umd.cs.findbugs.annotations.SuppressWarnings(<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    value="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION",<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    justification="Access to the conncurrent hash map is under a lock so should be fine.")<a name="line.107"></a>
+<span class="sourceLineNo">108</span>@InterfaceAudience.Private<a name="line.108"></a>
+<span class="sourceLineNo">109</span>class ConnectionImplementation implements ClusterConnection, Closeable {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public static final String RETRIES_BY_SERVER_KEY = "hbase.client.retries.by.server";<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  private static final Log LOG = LogFactory.getLog(ConnectionImplementation.class);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private static final String CLIENT_NONCES_ENABLED_KEY = "hbase.client.nonces.enabled";<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  private static final String RESOLVE_HOSTNAME_ON_FAIL_KEY = "hbase.resolve.hostnames.on.failure";<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private final boolean hostnamesCanChange;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  private final long pause;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  private final boolean useMetaReplicas;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private final int numTries;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  final int rpcTimeout;<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * Global nonceGenerator shared per client.Currently there's no reason to limit its scope.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Once it's set under nonceGeneratorCreateLock, it is never unset or changed.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static volatile NonceGenerator nonceGenerator = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /** The nonce generator lock. Only taken when creating HConnection, which gets a private copy. */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  private static Object nonceGeneratorCreateLock = new Object();<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private final AsyncProcess asyncProcess;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  // single tracker per connection<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  private final ServerStatisticTracker stats;<a name="line.131"></a>
 <span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  private final AsyncProcess asyncProcess;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  // single tracker per connection<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  private final ServerStatisticTracker stats;<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  private volatile boolean closed;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private volatile boolean aborted;<a name="line.138"></a>
+<span class="sourceLineNo">133</span>  private volatile boolean closed;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private volatile boolean aborted;<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>  // package protected for the tests<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  ClusterStatusListener clusterStatusListener;<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
 <span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>  // package protected for the tests<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  ClusterStatusListener clusterStatusListener;<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private final Object metaRegionLock = new Object();<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private final Object masterAndZKLock = new Object();<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  // thread executor shared by all HTableInterface instances created<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  // by this connection<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private volatile ExecutorService batchPool = null;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  // by this connection<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private volatile boolean cleanupPool = false;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private final Configuration conf;<a name="line.161"></a>
+<span class="sourceLineNo">140</span>  private final Object metaRegionLock = new Object();<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  // We have a single lock for master &amp; zk to prevent deadlocks. Having<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  //  one lock for ZK and one lock for master is not possible:<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  //  When creating a connection to master, we need a connection to ZK to get<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  //  its address. But another thread could have taken the ZK lock, and could<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  //  be waiting for the master lock =&gt; deadlock.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  private final Object masterAndZKLock = new Object();<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  // thread executor shared by all HTableInterface instances created<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  // by this connection<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private volatile ExecutorService batchPool = null;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  // meta thread executor shared by all HTableInterface instances created<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  // by this connection<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  private volatile ExecutorService metaLookupPool = null;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private volatile boolean cleanupPool = false;<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private final Configuration conf;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  private final TableConfiguration tableConfig;<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  // cache the configuration value for tables so that we can avoid calling<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  // the expensive Configuration to fetch the value multiple times.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final TableConfiguration tableConfig;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  // Client rpc instance.<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private RpcClient rpcClient;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  private final MetaCache metaCache;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private final MetricsConnection metrics;<a name="line.171"></a>
+<span class="sourceLineNo">163</span>  // Client rpc instance.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private RpcClient rpcClient;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final MetaCache metaCache;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  private final MetricsConnection metrics;<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  protected User user;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.171"></a>
 <span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  protected User user;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.173"></a>
 <span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  private RpcRetryingCallerFactory rpcCallerFactory;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>  private final RetryingCallerInterceptor interceptor;<a name="line.175"></a>
 <span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private final RetryingCallerInterceptor interceptor;<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>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   Registry registry;<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private final ClientBackoffPolicy backoffPolicy;<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>   * constructor<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * @param conf Configuration object<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  ConnectionImplementation(Configuration conf,<a name="line.192"></a>
-<span class="sourceLineNo">193</span>                           ExecutorService pool, User user) throws IOException {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    this.conf = conf;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.user = user;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    this.batchPool = pool;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    this.closed = false;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // how many times to try, one more than max *retry* time<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    this.rpcTimeout = conf.getInt(<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        if (nonceGenerator == null) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    } else {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      nonceGenerator = new NoNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      this.metrics = new MetricsConnection(this);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    } else {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      this.metrics = null;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>            ClusterStatusListener.Listener.class);<a name="line.237"></a>
+<span class="sourceLineNo">177</span>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * Cluster registry of basic info such as clusterid and meta region location.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   Registry registry;<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>  private final ClientBackoffPolicy backoffPolicy;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * constructor<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @param conf Configuration object<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  ConnectionImplementation(Configuration conf,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                           ExecutorService pool, User user) throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    this.conf = conf;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    this.user = user;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.batchPool = pool;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    this.tableConfig = new TableConfiguration(conf);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    this.closed = false;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.pause = conf.getLong(HConstants.HBASE_CLIENT_PAUSE,<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        HConstants.DEFAULT_HBASE_CLIENT_PAUSE);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    this.useMetaReplicas = conf.getBoolean(HConstants.USE_META_REPLICAS,<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      HConstants.DEFAULT_USE_META_REPLICAS);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // how many times to try, one more than max *retry* time<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    this.numTries = tableConfig.getRetriesNumber() + 1;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.rpcTimeout = conf.getInt(<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    if (conf.getBoolean(CLIENT_NONCES_ENABLED_KEY, true)) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      synchronized (nonceGeneratorCreateLock) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (nonceGenerator == null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          nonceGenerator = new PerClientRandomNonceGenerator();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    } else {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      nonceGenerator = new NoNonceGenerator();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    this.stats = ServerStatisticTracker.create(conf);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    this.interceptor = (new RetryingCallerInterceptorFactory(conf)).build();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.rpcControllerFactory = RpcControllerFactory.instantiate(conf);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.rpcCallerFactory = RpcRetryingCallerFactory.instantiate(conf, interceptor, this.stats);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.backoffPolicy = ClientBackoffPolicyFactory.create(conf);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.asyncProcess = createAsyncProcess(this.conf);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    if (conf.getBoolean(CLIENT_SIDE_METRICS_ENABLED_KEY, false)) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      this.metrics = new MetricsConnection(this);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      this.metrics = null;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    this.metaCache = new MetaCache(this.metrics);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    boolean shouldListen = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    this.hostnamesCanChange = conf.getBoolean(RESOLVE_HOSTNAME_ON_FAIL_KEY, true);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    Class&lt;? extends ClusterStatusListener.Listener&gt; listenerClass =<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        conf.getClass(ClusterStatusListener.STATUS_LISTENER_CLASS,<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            ClusterStatusListener.DEFAULT_STATUS_LISTENER_CLASS,<a name="line.232"></a>
+<span class="sourceLineNo">233</span>            ClusterStatusListener.Listener.class);<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>    try {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      this.registry = setupRegistry();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      retrieveClusterId();<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    try {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.registry = setupRegistry();<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      retrieveClusterId();<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>      // Do we publish the status?<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      if (shouldListen) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        if (listenerClass == null) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.248"></a>
-<span class="sourceLineNo">249</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        } else {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.251"></a>
-<span class="sourceLineNo">252</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>                @Override<a name="line.253"></a>
-<span class="sourceLineNo">254</span>                public void newDead(ServerName sn) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>                  clearCaches(sn);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>                  rpcClient.cancelConnections(sn);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>              }, conf, listenerClass);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    } catch (Throwable e) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      // avoid leaks: registry, rpcClient, ...<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      LOG.debug("connection construction failed", e);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      close();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      throw e;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  /**<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param conn The connection for which to replace the generator.<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @return old nonce generator.<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  @VisibleForTesting<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      + cnm.getClass().getName());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    nonceGenerator = cnm;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    return ng;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * Look for an exception we know in the remote exception:<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * - hadoop.ipc wrapped exceptions<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * - nested exceptions<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   *<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   *            ThrottlingException<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @return null if we didn't find the exception, the exception otherwise.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public static Throwable findException(Object exception) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (exception == null || !(exception instanceof Throwable)) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      return null;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Throwable cur = (Throwable) exception;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    while (cur != null) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      if (cur instanceof RegionMovedException || cur instanceof RegionOpeningException<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          || cur instanceof RegionTooBusyException || cur instanceof ThrottlingException<a name="line.301"></a>
-<span class="sourceLineNo">302</span>          || cur instanceof RetryImmediatelyException) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        return cur;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      }<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      if (cur instanceof RemoteException) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        RemoteException re = (RemoteException) cur;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        cur = re.unwrapRemoteException(<a name="line.307"></a>
-<span class="sourceLineNo">308</span>            RegionOpeningException.class, RegionMovedException.class,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>            RegionTooBusyException.class);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        if (cur == null) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          cur = re.unwrapRemoteException();<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        // unwrapRemoteException can return the exception given as a parameter when it cannot<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        //  unwrap it. In this case, there is no need to look further<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        // noinspection ObjectEquality<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        if (cur == re) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          return null;<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      } else {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        cur = cur.getCause();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">239</span>      this.rpcClient = RpcClientFactory.createClient(this.conf, this.clusterId, this.metrics);<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // Do we publish the status?<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (shouldListen) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        if (listenerClass == null) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.244"></a>
+<span class="sourceLineNo">245</span>              ClusterStatusListener.STATUS_LISTENER_CLASS + " is not set - not listening status");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>          clusterStatusListener = new ClusterStatusListener(<a name="line.247"></a>
+<span class="sourceLineNo">248</span>              new ClusterStatusListener.DeadServerHandler() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                @Override<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                public void newDead(ServerName sn) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                  clearCaches(sn);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                  rpcClient.cancelConnections(sn);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>              }, conf, listenerClass);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      }<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (Throwable e) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      // avoid leaks: registry, rpcClient, ...<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      LOG.debug("connection construction failed", e);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      close();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      throw e;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * @param conn The connection for which to replace the generator.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * @param cnm Replaces the nonce generator used, for testing.<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * @return old nonce generator.<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  @VisibleForTesting<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  static NonceGenerator injectNonceGeneratorForTesting(<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      ClusterConnection conn, NonceGenerator cnm) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ConnectionImplementation connImpl = (ConnectionImplementation)conn;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    NonceGenerator ng = connImpl.getNonceGenerator();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    LOG.warn("Nonce generator is being replaced by test code for "<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      + cnm.getClass().getName());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    nonceGenerator = cnm;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return ng;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    return getTable(TableName.valueOf(tableName));<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    return getTable(TableName.valueOf(tableName));<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>  @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    return getTable(tableName, getBatchPool());<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>  @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    if (params.getTableName() == null) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (params.getPool() == null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<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 null;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  @Override<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public HTableInterface getTable(String tableName) throws IOException {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return getTable(TableName.valueOf(tableName));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  @Override<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  public HTableInterface getTable(byte[] tableName) throws IOException {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    return getTable(TableName.valueOf(tableName));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public HTableInterface getTable(TableName tableName) throws IOException {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return getTable(tableName, getBatchPool());<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public HTableInterface getTable(String tableName, ExecutorService pool) throws IOException {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public HTableInterface getTable(byte[] tableName, ExecutorService pool) throws IOException {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return getTable(TableName.valueOf(tableName), pool);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public HTableInterface getTable(TableName tableName, ExecutorService pool) throws IOException {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return new HTable(tableName, this, tableConfig, rpcCallerFactory, rpcControllerFactory, pool);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public BufferedMutator getBufferedMutator(BufferedMutatorParams params) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    if (params.getTableName() == null) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      throw new IllegalArgumentException("TableName cannot be null.");<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    if (params.getPool() == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      params.pool(HTable.getDefaultExecutor(getConfiguration()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      params.writeBufferSize(tableConfig.getWriteBufferSize());<a name="line.366"></a>
+<span class="sourceLineNo">323</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<a name="line.331"></a>
+<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>  @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    return new HRegionLocator(tableName, this);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  public Admin getAdmin() throws IOException {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    return new HBaseAdmin(this);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>  @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public MetricsConnection getConnectionMetrics() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return this.metrics;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  private ExecutorService getBatchPool() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (batchPool == null) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      synchronized (this) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        if (batchPool == null) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.353"></a>
+<span class="sourceLineNo">354</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          this.cleanupPool = true;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    return this.batchPool;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    // shared HTable thread executor not yet initialized<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    if (maxThreads == 0) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.366"></a>
 <span class="sourceLineNo">367</span>    }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (params.getMaxKeyValueSize() == BufferedMutatorParams.UNSET) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      params.maxKeyValueSize(tableConfig.getMaxKeyValueSize());<a name="line.369"></a>
+<span class="sourceLineNo">368</span>    if (coreThreads == 0) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return new BufferedMutatorImpl(this, rpcCallerFactory, rpcControllerFactory, params);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public BufferedMutator getBufferedMutator(TableName tableName) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return getBufferedMutator(new BufferedMutatorParams(tableName));<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>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public RegionLocator getRegionLocator(TableName tableName) throws IOException {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return new HRegionLocator(tableName, this);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  @Override<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  public Admin getAdmin() throws IOException {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    return new HBaseAdmin(this);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>  @Override<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  public MetricsConnection getConnectionMetrics() {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    return this.metrics;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  private ExecutorService getBatchPool() {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    if (batchPool == null) {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      synchronized (this) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        if (batchPool == null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>          this.batchPool = getThreadPool(conf.getInt("hbase.hconnection.threads.max", 256),<a name="line.398"></a>
-<span class="sourceLineNo">399</span>              conf.getInt("hbase.hconnection.threads.core", 256), "-shared", null);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          this.cleanupPool = true;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      }<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    }<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    return this.batchPool;<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>  private ExecutorService getThreadPool(int maxThreads, int coreThreads, String nameHint,<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      BlockingQueue&lt;Runnable&gt; passedWorkQueue) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    // shared HTable thread executor not yet initialized<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    if (maxThreads == 0) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      maxThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (coreThreads == 0) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      coreThreads = Runtime.getRuntime().availableProcessors() * 8;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    }<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    if (workQueue == null) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      workQueue =<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.420"></a>
-<span class="sourceLineNo">421</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.421"></a>
-<span class="sourceLineNo">422</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        coreThreads,<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        maxThreads,<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        keepAliveTime,<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        TimeUnit.SECONDS,<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        workQueue,<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    if (this.metaLookupPool == null) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      synchronized (this) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (this.metaLookupPool == null) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          //Some of the threads would be used for meta replicas<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          //the queue is full, a new thread will be started<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          this.metaLookupPool = getThreadPool(<a name="line.443"></a>
-<span class="sourceLineNo">444</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.444"></a>
-<span class="sourceLineNo">445</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.445"></a>
-<span class="sourceLineNo">446</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return this.metaLookupPool;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    return batchPool;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
+<span class="sourceLineNo">371</span>    long keepAliveTime = conf.getLong("hbase.hconnection.threads.keepalivetime", 60);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    BlockingQueue&lt;Runnable&gt; workQueue = passedWorkQueue;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    if (workQueue == null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      workQueue =<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        new LinkedBlockingQueue&lt;Runnable&gt;(maxThreads *<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            conf.getInt(HConstants.HBASE_CLIENT_MAX_TOTAL_TASKS,<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                HConstants.DEFAULT_HBASE_CLIENT_MAX_TOTAL_TASKS));<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    ThreadPoolExecutor tpe = new ThreadPoolExecutor(<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        coreThreads,<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        maxThreads,<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        keepAliveTime,<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        TimeUnit.SECONDS,<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        workQueue,<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        Threads.newDaemonThreadFactory(toString() + nameHint));<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    tpe.allowCoreThreadTimeOut(true);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    return tpe;<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>  private ExecutorService getMetaLookupPool() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    if (this.metaLookupPool == null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      synchronized (this) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        if (this.metaLookupPool == null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>          //Some of the threads would be used for meta replicas<a name="line.394"></a>
+<span class="sourceLineNo">395</span>          //To start with, threads.max.core threads can hit the meta (including replicas).<a name="line.395"></a>
+<span class="sourceLineNo">396</span>          //After that, requests will get queued up in the passed queue, and only after<a name="line.396"></a>
+<span class="sourceLineNo">397</span>          //the queue is full, a new thread will be started<a name="line.397"></a>
+<span class="sourceLineNo">398</span>          this.metaLookupPool = getThreadPool(<a name="line.398"></a>
+<span class="sourceLineNo">399</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.max", 128),<a name="line.399"></a>
+<span class="sourceLineNo">400</span>             conf.getInt("hbase.hconnection.meta.lookup.threads.core", 10),<a name="line.400"></a>
+<span class="sourceLineNo">401</span>             "-metaLookup-shared-", new LinkedBlockingQueue&lt;Runnable&gt;());<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      }<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return this.metaLookupPool;<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>  protected ExecutorService getCurrentMetaLookupPool() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    return metaLookupPool;<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>  protected ExecutorService getCurrentBatchPool() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    return batchPool;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>  private void shutdownPools() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      shutdownBatchPool(this.batchPool);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    pool.shutdown();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        pool.shutdownNow();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    } catch (InterruptedException e) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      pool.shutdownNow();<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>  /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * @return The cluster registry implementation to use.<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private Registry setupRegistry() throws IOException {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    return RegistryFactory.getRegistry(this);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span>  /**<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   * For tests only.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   */<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  @VisibleForTesting<a name="line.446"></a>
+<span class="sourceLineNo">447</span>  RpcClient getRpcClient() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    return rpcClient;<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>   * An identifier that will remain the same for a given connection.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>   */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  @Override<a name="line.454"></a>
+<span class="sourceLineNo">455</span>  public String toString(){<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    return "hconnection-0x" + Integer.toHexString(hashCode());<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>  protected String clusterId = null;<a name="line.459"></a>
 <span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  private void shutdownPools() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (this.cleanupPool &amp;&amp; this.batchPool != null &amp;&amp; !this.batchPool.isShutdown()) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      shutdownBatchPool(this.batchPool);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    if (this.metaLookupPool != null &amp;&amp; !this.metaLookupPool.isShutdown()) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      shutdownBatchPool(this.metaLookupPool);<a name="line.466"></a>
+<span class="sourceLineNo">461</span>  protected void retrieveClusterId() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    if (clusterId != null) return;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    this.clusterId = this.registry.getClusterId();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    if (clusterId == null) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      clusterId = HConstants.CLUSTER_ID_DEFAULT;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      LOG.debug("clusterid came back null, using default " + clusterId);<a name="line.466"></a>
 <span class="sourceLineNo">467</span>    }<a name="line.467"></a>
 <span class="sourceLineNo">468</span>  }<a name="line.468"></a>
 <span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>  private void shutdownBatchPool(ExecutorService pool) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    pool.shutdown();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (!pool.awaitTermination(10, TimeUnit.SECONDS)) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        pool.shutdownNow();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    } catch (InterruptedException e) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      pool.shutdownNow();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  /**<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @return The cluster registry implementation to use.<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   */<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  private Registry setupRegistry() throws IOException {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    return RegistryFactory.getRegistry(this);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>  /**<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * For tests only.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   */<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  @VisibleForTesting<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  RpcClient getRpcClient() {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    return rpcClient;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>  /**<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * An identifier that will remain the same for a given connection.<a name="line.497"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public Configuration getConfiguration() {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return this.conf;<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>  private void checkIfBaseNodeAvailable(ZooKeeperWatcher zkw)<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    throws MasterNotRunningException {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    String errorMsg;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    try {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (ZKUtil.checkExists(zkw, zkw.baseZNode) == -1) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        errorMsg = "The node " + zkw.baseZNode+" is not in ZooKeeper. "<a name="line.480"></

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
index bf27873..e4df7cc 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
@@ -75,2529 +75,2534 @@
 <span class="sourceLineNo">067</span><a name="line.67"></a>
 <span class="sourceLineNo">068</span>import org.apache.commons.logging.Log;<a name="line.68"></a>
 <span class="sourceLineNo">069</span>import org.apache.commons.logging.LogFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.conf.Configuration;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HConstants;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.Server;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.TableName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.User;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.io.BytesWritable;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.io.IntWritable;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.io.Writable;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.io.WritableUtils;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.util.StringUtils;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.htrace.TraceInfo;<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import com.google.protobuf.BlockingService;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import com.google.protobuf.CodedInputStream;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import com.google.protobuf.Message;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import com.google.protobuf.ServiceException;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import com.google.protobuf.TextFormat;<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>/**<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * An RPC server that hosts protobuf described Services.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> *<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.143"></a>
-<span class="sourceLineNo">144</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * and loops till done.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> *<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.151"></a>
-<span class="sourceLineNo">152</span> * and keep taking while the server is up.<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *<a name="line.153"></a>
-<span class="sourceLineNo">154</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * queue for Responder to pull from and return result to client.<a name="line.155"></a>
-<span class="sourceLineNo">156</span> *<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * @see RpcClientImpl<a name="line.157"></a>
-<span class="sourceLineNo">158</span> */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.159"></a>
-<span class="sourceLineNo">160</span>@InterfaceStability.Evolving<a name="line.160"></a>
-<span class="sourceLineNo">161</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      = new CallQueueTooBigException();<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final boolean authorize;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private boolean isSecurityEnabled;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final byte CURRENT_VERSION = 0;<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>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * How many calls/handler are allowed in the queue.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * The maximum size that we can hold in the RPC queue<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private final IPCUtil ipcUtil;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    Server.class.getName());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected ServiceAuthorizationManager authManager;<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * after the call returns.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  protected final InetSocketAddress bindAddress;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected int port;                             // port we listen on<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private int readThreads;                        // number of read threads<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.210"></a>
-<span class="sourceLineNo">211</span>                                                  // which a client may be<a name="line.211"></a>
-<span class="sourceLineNo">212</span>                                                  // disconnected<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.213"></a>
-<span class="sourceLineNo">214</span>                                                  // connections after which we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>                                                  // will start cleaning up idle<a name="line.215"></a>
-<span class="sourceLineNo">216</span>                                                  // connections<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.217"></a>
-<span class="sourceLineNo">218</span>                                                  // connections to nuke<a name="line.218"></a>
-<span class="sourceLineNo">219</span>                                                  // during a cleanup<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected MetricsHBaseServer metrics;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  protected final Configuration conf;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private int maxQueueSize;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  protected int socketSendBufferSize;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  protected final long purgeTimeout;    // in milliseconds<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  volatile boolean running = true;<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  /**<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * for business by the call to {@link #start()}.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  volatile boolean started = false;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final Counter callQueueSize = new Counter();<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  //maintain a list<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  //of client connections<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  private Listener listener = null;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected Responder responder = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  protected int numConnections = 0;<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /** Default value for above params */<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  private final int warnResponseTime;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  private final int warnResponseSize;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  private final Server server;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private final RpcScheduler scheduler;<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private UserProvider userProvider;<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>  private final BoundedByteBufferPool reservoir;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * the result.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  class Call implements RpcCallContext {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    protected int id;                             // the client's call id<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    protected BlockingService service;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    protected MethodDescriptor md;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    protected RequestHeader header;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    protected Message param;                      // the parameter passed<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // Optional cell data passed outside of protobufs.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    protected CellScanner cellScanner;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    protected Connection connection;              // connection to client<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    protected long timestamp;      // the time received when response is null<a name="line.295"></a>
-<span class="sourceLineNo">296</span>                                   // the time served when response is not null<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>     * Chain of buffers to send as response.<a name="line.298"></a>
-<span class="sourceLineNo">299</span>     */<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    protected BufferChain response;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    protected Responder responder;<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>    protected long size;                          // size of current call<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    protected boolean isError;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    protected TraceInfo tinfo;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    private ByteBuffer cellBlock = null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>    private User user;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    private InetAddress remoteAddress;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    private RpcCallback callback;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private long responseCellSize = 0;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    private long responseBlockSize = 0;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    private boolean retryImmediatelySupported;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.319"></a>
-<span class="sourceLineNo">320</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      this.id = id;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      this.service = service;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      this.md = md;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      this.header = header;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      this.param = param;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      this.cellScanner = cellScanner;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      this.connection = connection;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      this.timestamp = System.currentTimeMillis();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      this.response = null;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      this.responder = responder;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      this.isError = false;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      this.size = size;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      this.tinfo = tinfo;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      this.remoteAddress = remoteAddress;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      this.retryImmediatelySupported =<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          connection == null? null: connection.retryImmediatelySupported;<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.341"></a>
-<span class="sourceLineNo">342</span>     * cleanup.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>     */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    void done() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        // Return buffer to reservoir now we are done with it.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        reservoir.putBuffer(this.cellBlock);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        this.cellBlock = null;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    public String toString() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      return toShortString() + " param: " +<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        " connection: " + connection.toString();<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>    protected RequestHeader getHeader() {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return this.header;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    /*<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     * the payload of a command<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    String toShortString() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      String serviceName = this.connection.service != null ?<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.373"></a>
-<span class="sourceLineNo">374</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      String serviceName = this.connection.service != null ?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      return serviceName + "." + methodName;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      this.response = new BufferChain(response);<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>    protected synchronized void setResponse(Object m, final CellScanner cells,<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        Throwable t, String errorMsg) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      if (this.isError) return;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      if (t != null) this.isError = true;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      BufferChain bc = null;<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      try {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        ResponseHeader.Builder headerBuilder = ResponseHeader.newBuilder();<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // Presume it a pb Message.  Could be null.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        Message result = (Message)m;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        // Call id.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        headerBuilder.setCallId(this.id);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        if (t != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          ExceptionResponse.Builder exceptionBuilder = ExceptionResponse.newBuilder();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          exceptionBuilder.setExceptionClassName(t.getClass().getName());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          exceptionBuilder.setStackTrace(errorMsg);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          exceptionBuilder.setDoNotRetry(t instanceof DoNotRetryIOException);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          if (t instanceof RegionMovedException) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>            // Special casing for this exception.  This is only one carrying a payload.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            // Do this instead of build a generic system for allowing exceptions carry<a name="line.408"></a>
-<span class="sourceLineNo">409</span>            // any kind of payload.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            RegionMovedException rme = (RegionMovedException)t;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>            exceptionBuilder.setHostname(rme.getHostname());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            exceptionBuilder.setPort(rme.getPort());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>          }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          // Set the exception as the result of the method invocation.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          headerBuilder.setException(exceptionBuilder.build());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        // Pass reservoir to buildCellBlock. Keep reference to returne so can add it back to the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        // reservoir when finished. This is hacky and the hack is not contained but benefits are<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // high when we can avoid a big buffer allocation on each rpc.<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        this.cellBlock = ipcUtil.buildCellBlock(this.connection.codec,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          this.connection.compressionCodec, cells, reservoir);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        if (this.cellBlock != null) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          CellBlockMeta.Builder cellBlockBuilder = CellBlockMeta.newBuilder();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          // Presumes the cellBlock bytebuffer has been flipped so limit has total size in it.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          cellBlockBuilder.setLength(this.cellBlock.limit());<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          headerBuilder.setCellBlockMeta(cellBlockBuilder.build());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        Message header = headerBuilder.build();<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>        // Organize the response as a set of bytebuffers rather than collect it all together inside<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        // one big byte array; save on allocations.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        ByteBuffer bbHeader = IPCUtil.getDelimitedMessageAsByteBuffer(header);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        ByteBuffer bbResult = IPCUtil.getDelimitedMessageAsByteBuffer(result);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        int totalSize = bbHeader.capacity() + (bbResult == null? 0: bbResult.limit()) +<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          (this.cellBlock == null? 0: this.cellBlock.limit());<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        ByteBuffer bbTotalSize = ByteBuffer.wrap(Bytes.toBytes(totalSize));<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        bc = new BufferChain(bbTotalSize, bbHeader, bbResult, this.cellBlock);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (connection.useWrap) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          bc = wrapWithSasl(bc);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      } catch (IOException e) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        LOG.warn("Exception while creating response " + e);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      this.response = bc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      // Once a response message is created and set to this.response, this Call can be treated as<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      // done. The Responder thread will do the n/w write of this message back to client.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      if (this.callback != null) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        try {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          this.callback.run();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        } catch (Exception e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          // Don't allow any exception here to kill this handler thread.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          LOG.warn("Exception while running the Rpc Callback.", e);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    private BufferChain wrapWithSasl(BufferChain bc)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      if (!this.connection.useSasl) return bc;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      // Looks like no way around this; saslserver wants a byte array.  I have to make it one.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      // THIS IS A BIG UGLY COPY.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      byte [] responseBytes = bc.getBytes();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      byte [] token;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      // synchronization may be needed since there can be multiple Handler<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      // threads using saslServer to wrap responses.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      synchronized (connection.saslServer) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        token = connection.saslServer.wrap(responseBytes, 0, responseBytes.length);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      if (LOG.isTraceEnabled()) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        LOG.trace("Adding saslServer wrapped token of size " + token.length<a name="line.470"></a>
-<span class="sourceLineNo">471</span>            + " as call response.");<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>      ByteBuffer bbTokenLength = ByteBuffer.wrap(Bytes.toBytes(token.length));<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      ByteBuffer bbTokenBytes = ByteBuffer.wrap(token);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      return new BufferChain(bbTokenLength, bbTokenBytes);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    }<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>    @Override<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    public boolean isClientCellBlockSupported() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return this.connection != null &amp;&amp; this.connection.codec != null;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    @Override<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    public long disconnectSince() {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      if (!connection.channel.isOpen()) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        return System.currentTimeMillis() - timestamp;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      } else {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        return -1L;<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><a name="line.492"></a>
-<span class="sourceLineNo">493</span>    public long getSize() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      return this.size;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>    public long getResponseCellSize() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return responseCellSize;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    public void incrementResponseCellSize(long cellSize) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      responseCellSize += cellSize;<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>    @Override<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    public long getResponseBlockSize() {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      return responseBlockSize;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>    @Override<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    public void incrementResponseBlockSize(long blockSize) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      responseBlockSize += blockSize;<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>    public synchronized void sendResponseIfReady() throws IOException {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.responder.doRespond(this);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public UserGroupInformation getRemoteUser() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      return connection.ugi;<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    }<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>    @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    public User getRequestUser() {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      return user;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    @Override<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    public String getRequestUserName() {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      User user = getRequestUser();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      return user == null? null: user.getShortName();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>    @Override<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    public InetAddress getRemoteAddress() {<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      return remoteAddress;<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>    @Override<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    public VersionInfo getClientVersionInfo() {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      return connection.getVersionInfo();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>    @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    public synchronized void setCallBack(RpcCallback callback) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.callback = callback;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    @Override<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    public boolean isRetryImmediatelySupported() {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      return retryImmediatelySupported;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<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>  /** Listens on the socket. Creates jobs for the handler threads*/<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private class Listener extends Thread {<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    private ServerSocketChannel acceptChannel = null; //the accept channel<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private Selector selector = null; //the selector that we use for the server<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    private Reader[] readers = null;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    private int currentReader = 0;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    private Random rand = new Random();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    private long lastCleanupRunTime = 0; //the last time when a cleanup connec-<a name="line.563"></a>
-<span class="sourceLineNo">564</span>                                         //-tion (for idle connections) ran<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    private long cleanupInterval = 10000; //the minimum interval between<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                                          //two cleanup runs<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    private int backlogLength;<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>    private ExecutorService readPool;<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>    public Listener(final String name) throws IOException {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      super(name);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      backlogLength = conf.getInt("hbase.ipc.server.listen.queue.size", 128);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      // Create a new server socket and set to non blocking mode<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      acceptChannel = ServerSocketChannel.open();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      acceptChannel.configureBlocking(false);<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Bind the server socket to the binding addrees (can be different from the default interface)<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      bind(acceptChannel.socket(), bindAddress, backlogLength);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      port = acceptChannel.socket().getLocalPort(); //Could be an ephemeral port<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      address = (InetSocketAddress)acceptChannel.socket().getLocalSocketAddress();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      // create a selector;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      selector= Selector.open();<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>      readers = new Reader[readThreads];<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      readPool = Executors.newFixedThreadPool(readThreads,<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        new ThreadFactoryBuilder().setNameFormat(<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          "RpcServer.reader=%d,bindAddress=" + bindAddress.getHostName() +<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          ",port=" + port).setDaemon(true).build());<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      for (int i = 0; i &lt; readThreads; ++i) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        Reader reader = new Reader();<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        readers[i] = reader;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        readPool.execute(reader);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      LOG.info(getName() + ": started " + readThreads + " reader(s) listening on port=" + port);<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>      // Register accepts on the server socket with the selector.<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      acceptChannel.register(selector, SelectionKey.OP_ACCEPT);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.setName("RpcServer.listener,port=" + port);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      this.setDaemon(true);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.CallQueueTooBigException;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.conf.Configuration;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HConstants;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.Server;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.TableName;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.User;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.io.BytesWritable;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.io.IntWritable;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.io.Writable;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.io.WritableUtils;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.util.StringUtils;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.htrace.TraceInfo;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import com.google.protobuf.BlockingService;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import com.google.protobuf.CodedInputStream;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import com.google.protobuf.Message;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import com.google.protobuf.ServiceException;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import com.google.protobuf.TextFormat;<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>/**<a name="line.140"></a>
+<span class="sourceLineNo">141</span> * An RPC server that hosts protobuf described Services.<a name="line.141"></a>
+<span class="sourceLineNo">142</span> *<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.143"></a>
+<span class="sourceLineNo">144</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.146"></a>
+<span class="sourceLineNo">147</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * and loops till done.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> *<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * and keep taking while the server is up.<a name="line.153"></a>
+<span class="sourceLineNo">154</span> *<a name="line.154"></a>
+<span class="sourceLineNo">155</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.155"></a>
+<span class="sourceLineNo">156</span> * queue for Responder to pull from and return result to client.<a name="line.156"></a>
+<span class="sourceLineNo">157</span> *<a name="line.157"></a>
+<span class="sourceLineNo">158</span> * @see RpcClientImpl<a name="line.158"></a>
+<span class="sourceLineNo">159</span> */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.160"></a>
+<span class="sourceLineNo">161</span>@InterfaceStability.Evolving<a name="line.161"></a>
+<span class="sourceLineNo">162</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      = new CallQueueTooBigException();<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  private final boolean authorize;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private boolean isSecurityEnabled;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public static final byte CURRENT_VERSION = 0;<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.176"></a>
+<span class="sourceLineNo">177</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * How many calls/handler are allowed in the queue.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * The maximum size that we can hold in the RPC queue<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final IPCUtil ipcUtil;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    Server.class.getName());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  protected ServiceAuthorizationManager authManager;<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * after the call returns.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  protected final InetSocketAddress bindAddress;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  protected int port;                             // port we listen on<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private int readThreads;                        // number of read threads<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                                  // which a client may be<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                                  // disconnected<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                                  // connections after which we<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                                  // will start cleaning up idle<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                                  // connections<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                                  // connections to nuke<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                                  // during a cleanup<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  protected MetricsHBaseServer metrics;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  protected final Configuration conf;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  private int maxQueueSize;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  protected int socketSendBufferSize;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  protected final long purgeTimeout;    // in milliseconds<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>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  volatile boolean running = true;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  /**<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * for business by the call to {@link #start()}.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   */<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  volatile boolean started = false;<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  /**<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  protected final Counter callQueueSize = new Counter();<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  //maintain a list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  //of client connections<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  private Listener listener = null;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  protected Responder responder = null;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  protected int numConnections = 0;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>  /** Default value for above params */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  private final int warnResponseTime;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  private final int warnResponseSize;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  private final Server server;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  private final RpcScheduler scheduler;<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>  private UserProvider userProvider;<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>  private final BoundedByteBufferPool reservoir;<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * the result.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  class Call implements RpcCallContext {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    protected int id;                             // the client's call id<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    protected BlockingService service;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    protected MethodDescriptor md;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    protected RequestHeader header;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    protected Message param;                      // the parameter passed<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    // Optional cell data passed outside of protobufs.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    protected CellScanner cellScanner;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    protected Connection connection;              // connection to client<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    protected long timestamp;      // the time received when response is null<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                   // the time served when response is not null<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span>     * Chain of buffers to send as response.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>     */<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    protected BufferChain response;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    protected Responder responder;<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    protected long size;                          // size of current call<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    protected boolean isError;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    protected TraceInfo tinfo;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    private ByteBuffer cellBlock = null;<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    private User user;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    private InetAddress remoteAddress;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    private RpcCallback callback;<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    private long responseCellSize = 0;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    private long responseBlockSize = 0;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    private boolean retryImmediatelySupported;<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      this.id = id;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      this.service = service;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      this.md = md;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      this.header = header;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      this.param = param;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      this.cellScanner = cellScanner;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      this.connection = connection;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      this.timestamp = System.currentTimeMillis();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      this.response = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      this.responder = responder;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      this.isError = false;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      this.size = size;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      this.tinfo = tinfo;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      this.remoteAddress = remoteAddress;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      this.retryImmediatelySupported =<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          connection == null? null: connection.retryImmediatelySupported;<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>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.342"></a>
+<span class="sourceLineNo">343</span>     * cleanup.<a name="line.343"></a>
+<span class="sourceLineNo">344</span>     */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    void done() {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        // Return buffer to reservoir now we are done with it.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        reservoir.putBuffer(this.cellBlock);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        this.cellBlock = null;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    @Override<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    public String toString() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      return toShortString() + " param: " +<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        " connection: " + connection.toString();<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    protected RequestHeader getHeader() {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      return this.header;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>    /*<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * the payload of a command<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    String toShortString() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      String serviceName = this.connection.service != null ?<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.374"></a>
+<span class="sourceLineNo">375</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.375"></a>
+<span class="sourceLineNo">376</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.376"></a>
+<span class="sourceLineNo">377</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      String serviceName = this.connection.service != null ?<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return serviceName + "." + methodName;<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</spa

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html
index 873bef6..357f586 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html
@@ -103,7 +103,7 @@
 </dl>
 <hr>
 <br>
-<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.600">AsyncProcess.AsyncRequestFutureImpl</a>&lt;CResult&gt;
+<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.601">AsyncProcess.AsyncRequestFutureImpl</a>&lt;CResult&gt;
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a></pre>
 <div class="block">The context, and return value, for a single submit/submitAll call.
@@ -463,7 +463,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>callback</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/coprocessor/Batch.Callback.html" title="interface in org.apache.hadoop.hbase.client.coprocessor">Batch.Callback</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html" title="type parameter in AsyncProcess.AsyncRequestFutureImpl">CResult</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.769">callback</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/coprocessor/Batch.Callback.html" title="interface in org.apache.hadoop.hbase.client.coprocessor">Batch.Callback</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html" title="type parameter in AsyncProcess.AsyncRequestFutureImpl">CResult</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.770">callback</a></pre>
 </li>
 </ul>
 <a name="errors">
@@ -472,7 +472,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>errors</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.BatchErrors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.770">errors</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.BatchErrors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.771">errors</a></pre>
 </li>
 </ul>
 <a name="errorsByServer">
@@ -481,7 +481,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>errorsByServer</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.ServerErrorTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.771">errorsByServer</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.ServerErrorTracker.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation.ServerErrorTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.772">errorsByServer</a></pre>
 </li>
 </ul>
 <a name="pool">
@@ -490,7 +490,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>pool</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.772">pool</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.773">pool</a></pre>
 </li>
 </ul>
 <a name="callsInProgress">
@@ -499,7 +499,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>callsInProgress</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.773">callsInProgress</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.774">callsInProgress</a></pre>
 </li>
 </ul>
 <a name="tableName">
@@ -508,7 +508,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>tableName</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.776">tableName</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.777">tableName</a></pre>
 </li>
 </ul>
 <a name="actionsInProgress">
@@ -517,7 +517,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>actionsInProgress</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/AsyncProcess.AsyncRequestFutureImpl.html#line.777">actionsInProgress</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/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/client/AsyncProcess.AsyncRequestFutureImpl.html#line.778">actionsInProgress</a></pre>
 </li>
 </ul>
 <a name="replicaResultLock">
@@ -526,7 +526,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>replicaResultLock</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.783">replicaResultLock</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.784">replicaResultLock</a></pre>
 <div class="block">The lock controls access to results. It is only held when populating results where
  there might be several callers (eventual consistency gets). For other requests,
  there's one unique call going on per result index.</div>
@@ -538,7 +538,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>results</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.793">results</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.794">results</a></pre>
 <div class="block">Result array.  Null if results are not needed. Otherwise, each index corresponds to
  the action index in initial actions submitted. For most request types, has null-s for
  requests that are not done, and result/exception for those that are done.
@@ -554,7 +554,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>replicaGetIndices</h4>
-<pre>private final&nbsp;int[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.797">replicaGetIndices</a></pre>
+<pre>private final&nbsp;int[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.798">replicaGetIndices</a></pre>
 <div class="block">Indices of replica gets in results. If null, all or no actions are replica-gets.</div>
 </li>
 </ul>
@@ -564,7 +564,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>hasAnyReplicaGets</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.798">hasAnyReplicaGets</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.799">hasAnyReplicaGets</a></pre>
 </li>
 </ul>
 <a name="nonceGroup">
@@ -573,7 +573,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockListLast">
 <li class="blockList">
 <h4>nonceGroup</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.799">nonceGroup</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.800">nonceGroup</a></pre>
 </li>
 </ul>
 </li>
@@ -590,7 +590,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncProcess.AsyncRequestFutureImpl</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.801">AsyncProcess.AsyncRequestFutureImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.802">AsyncProcess.AsyncRequestFutureImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                    <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;actions,
                                    long&nbsp;nonceGroup,
                                    <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
@@ -613,7 +613,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>getCallsInProgress</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.873">getCallsInProgress</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.874">getCallsInProgress</a>()</pre>
 </li>
 </ul>
 <a name="groupAndSendMultiAction(java.util.List, int)">
@@ -622,7 +622,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>groupAndSendMultiAction</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.883">groupAndSendMultiAction</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;currentActions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.884">groupAndSendMultiAction</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;currentActions,
                            int&nbsp;numAttempt)</pre>
 <div class="block">Group a list of actions per region servers, and send them.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>currentActions</code> - - the list of row to submit</dd><dd><code>numAttempt</code> - - the current numAttempt (first attempt is 1)</dd></dl>
@@ -634,7 +634,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicaLocationOrFail</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.938">getReplicaLocationOrFail</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action)</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.939">getReplicaLocationOrFail</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action)</pre>
 </li>
 </ul>
 <a name="manageLocationError(org.apache.hadoop.hbase.client.Action, java.lang.Exception)">
@@ -643,7 +643,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>manageLocationError</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.957">manageLocationError</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.958">manageLocationError</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action,
                        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;ex)</pre>
 </li>
 </ul>
@@ -653,7 +653,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>findAllLocationsOrFail</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.968">findAllLocationsOrFail</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.969">findAllLocationsOrFail</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action,
                                      boolean&nbsp;useCache)</pre>
 </li>
 </ul>
@@ -663,7 +663,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>sendMultiAction</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.989">sendMultiAction</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;actionsByServer,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.990">sendMultiAction</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;actionsByServer,
                    int&nbsp;numAttempt,
                    <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;actionsForReplicaThread,
                    boolean&nbsp;reuseThread)</pre>
@@ -678,7 +678,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>getNewMultiActionRunnable</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1038">getNewMultiActionRunnable</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1039">getNewMultiActionRunnable</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                                                        <a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;multiAction,
                                                        int&nbsp;numAttempt)</pre>
 </li>
@@ -689,7 +689,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackoff</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1098">getBackoff</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1099">getBackoff</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
               byte[]&nbsp;regionName)</pre>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>server</code> - server location where the target region is hosted</dd><dd><code>regionName</code> - name of the region which we are going to write some data</dd>
 <dt><span class="strong">Returns:</span></dt><dd>the amount of time the client should wait until it submit a request to the
@@ -702,7 +702,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>startWaitingForReplicaCalls</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1108">startWaitingForReplicaCalls</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;actionsForReplicaThread)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1109">startWaitingForReplicaCalls</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;actionsForReplicaThread)</pre>
 <div class="block">Starts waiting to issue replica calls on a different thread; or issues them immediately.</div>
 </li>
 </ul>
@@ -712,7 +712,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>manageError</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1136">manageError</a>(int&nbsp;originalIndex,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1137">manageError</a>(int&nbsp;originalIndex,
                              <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row,
                              <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a>&nbsp;canRetry,
                              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;throwable,
@@ -728,7 +728,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>receiveGlobalFailure</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1160">receiveGlobalFailure</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;rsActions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1161">receiveGlobalFailure</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;rsActions,
                         <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                         int&nbsp;numAttempt,
                         <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</pre>
@@ -742,7 +742,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>resubmit</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1205">resubmit</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;oldServer,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1206">resubmit</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;oldServer,
             <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&gt;&nbsp;toReplay,
             int&nbsp;numAttempt,
             int&nbsp;failureCount,
@@ -757,7 +757,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>logNoResubmit</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1239">logNoResubmit</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;oldServer,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1240">logNoResubmit</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;oldServer,
                  int&nbsp;numAttempt,
                  int&nbsp;failureCount,
                  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;throwable,
@@ -771,7 +771,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>receiveMultiAction</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1262">receiveMultiAction</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;multiAction,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1263">receiveMultiAction</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;multiAction,
                       <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                       <a href="../../../../../org/apache/hadoop/hbase/client/MultiResponse.html" title="class in org.apache.hadoop.hbase.client">MultiResponse</a>&nbsp;responses,
                       int&nbsp;numAttempt)</pre>
@@ -785,7 +785,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>createLog</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1387">createLog</a>(int&nbsp;numAttempt,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1388">createLog</a>(int&nbsp;numAttempt,
                int&nbsp;failureCount,
                int&nbsp;replaySize,
                <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
@@ -803,7 +803,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>setResult</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1425">setResult</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1426">setResult</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Action.html" title="class in org.apache.hadoop.hbase.client">Action</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;action,
              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;result)</pre>
 <div class="block">Sets the non-error result from a particular action.</div>
 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>action</code> - Action (request) that the server responded to.</dd><dd><code>result</code> - The result.</dd></dl>
@@ -815,7 +815,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>setError</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1468">setError</a>(int&nbsp;index,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1469">setError</a>(int&nbsp;index,
             <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row,
             <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;throwable,
             <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server)</pre>
@@ -829,7 +829,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>isActionComplete</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1526">isActionComplete</a>(int&nbsp;index,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1527">isActionComplete</a>(int&nbsp;index,
                        <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row)</pre>
 <div class="block">Checks if the action is complete; used on error to prevent needless retries.
  Does not synchronize, assuming element index/field accesses are atomic.
@@ -843,7 +843,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>trySetResultSimple</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.ReplicaResultState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1537">trySetResultSimple</a>(int&nbsp;index,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.ReplicaResultState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1538">trySetResultSimple</a>(int&nbsp;index,
                                                  <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row,
                                                  boolean&nbsp;isError,
                                                  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;result,
@@ -859,7 +859,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>decActionCounter</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1572">decActionCounter</a>(int&nbsp;index)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1573">decActionCounter</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="buildDetailedErrorMsg(java.lang.String, int)">
@@ -868,7 +868,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>buildDetailedErrorMsg</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1584">buildDetailedErrorMsg</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;string,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1585">buildDetailedErrorMsg</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;string,
                            int&nbsp;index)</pre>
 </li>
 </ul>
@@ -878,7 +878,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>waitUntilDone</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1606">waitUntilDone</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1607">waitUntilDone</a>()
                    throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#waitUntilDone()">AsyncProcess.AsyncRequestFuture</a></code></strong></div>
 <div class="block">Wait until all tasks are executed, successfully or not.</div>
@@ -895,7 +895,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>waitUntilDone</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1620">waitUntilDone</a>(long&nbsp;cutoff)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1621">waitUntilDone</a>(long&nbsp;cutoff)
                        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl><dt><span class="strong">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd></dl>
@@ -907,7 +907,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>hasError</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1649">hasError</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1650">hasError</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#hasError()">hasError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a></code></dd>
@@ -920,7 +920,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>getFailedOperations</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1654">getFailedOperations</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1655">getFailedOperations</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#getFailedOperations()">getFailedOperations</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a></code></dd>
@@ -933,7 +933,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockList">
 <li class="blockList">
 <h4>getErrors</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.html" title="class in org.apache.hadoop.hbase.client">RetriesExhaustedWithDetailsException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1659">getErrors</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.html" title="class in org.apache.hadoop.hbase.client">RetriesExhaustedWithDetailsException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1660">getErrors</a>()</pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFuture.html" title="interface in org.apache.hadoop.hbase.client">AsyncProcess.AsyncRequestFuture</a></code></dd>
@@ -946,7 +946,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.A
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getResults</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1664">getResults</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.AsyncRequestFutureImpl.html#line.1665">getResults</a>()
                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
 <dt><strong>Specified by:</strong></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html
index feab40a..ab024a5 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>protected static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.225">AsyncProcess.BatchErrors</a>
+<pre>protected static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.226">AsyncProcess.BatchErrors</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -215,7 +215,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>throwables</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.226">throwables</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.227">throwables</a></pre>
 </li>
 </ul>
 <a name="actions">
@@ -224,7 +224,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>actions</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.227">actions</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.228">actions</a></pre>
 </li>
 </ul>
 <a name="addresses">
@@ -233,7 +233,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>addresses</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.228">addresses</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.229">addresses</a></pre>
 </li>
 </ul>
 </li>
@@ -250,7 +250,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncProcess.BatchErrors</h4>
-<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.225">AsyncProcess.BatchErrors</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.226">AsyncProcess.BatchErrors</a>()</pre>
 </li>
 </ul>
 </li>
@@ -267,7 +267,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.230">add</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;ex,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.231">add</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;ex,
        <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row,
        <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 </li>
@@ -278,7 +278,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hasErrors</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.240">hasErrors</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.241">hasErrors</a>()</pre>
 </li>
 </ul>
 <a name="makeException()">
@@ -287,7 +287,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>makeException</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.html" title="class in org.apache.hadoop.hbase.client">RetriesExhaustedWithDetailsException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.244">makeException</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.html" title="class in org.apache.hadoop.hbase.client">RetriesExhaustedWithDetailsException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.245">makeException</a>()</pre>
 </li>
 </ul>
 <a name="clear()">
@@ -296,7 +296,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>clear</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.250">clear</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.251">clear</a>()</pre>
 </li>
 </ul>
 <a name="merge(org.apache.hadoop.hbase.client.AsyncProcess.BatchErrors)">
@@ -305,7 +305,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>merge</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.256">merge</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.BatchErrors</a>&nbsp;other)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html#line.257">merge</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.BatchErrors</a>&nbsp;other)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html
index 03d4ca9..5504346 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html
@@ -99,7 +99,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.165">AsyncProcess.ReplicaResultState</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.166">AsyncProcess.ReplicaResultState</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Sync point for calls to multiple replicas for the same user request (Get).
  Created and put in the results array (we assume replica calls require results) when
@@ -199,7 +199,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>callCount</h4>
-<pre>int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html#line.171">callCount</a></pre>
+<pre>int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html#line.172">callCount</a></pre>
 <div class="block">Number of calls outstanding, or 0 if a call succeeded (even with others outstanding).</div>
 </li>
 </ul>
@@ -209,7 +209,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>replicaErrors</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.BatchErrors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html#line.174">replicaErrors</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.BatchErrors.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess.BatchErrors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html#line.175">replicaErrors</a></pre>
 <div class="block">Errors for which it is not decided whether we will report them to user. If one of the
  calls succeeds, we will discard the errors that may have happened in the other calls.</div>
 </li>
@@ -228,7 +228,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncProcess.ReplicaResultState</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html#line.166">AsyncProcess.ReplicaResultState</a>(int&nbsp;callCount)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html#line.167">AsyncProcess.ReplicaResultState</a>(int&nbsp;callCount)</pre>
 </li>
 </ul>
 </li>
@@ -245,7 +245,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html#line.177">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.ReplicaResultState.html#line.178">toString</a>()</pre>
 <dl>
 <dt><strong>Overrides:</strong></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html
index 57c5d7f..7151a74 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html
@@ -108,7 +108,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1822">AsyncProcess.Retry</a>
+<pre>private static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.html#line.1823">AsyncProcess.Retry</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a>&gt;</pre>
 <div class="block">For <code>AsyncRequestFutureImpl#manageError(int, Row, Retry, Throwable, ServerName)</code>. Only
  used to make logging more clear, we don't actually care why we don't retry.</div>
@@ -207,7 +207,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>YES</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html#line.1823">YES</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html#line.1824">YES</a></pre>
 </li>
 </ul>
 <a name="NO_LOCATION_PROBLEM">
@@ -216,7 +216,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NO_LOCATION_PROBLEM</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html#line.1824">NO_LOCATION_PROBLEM</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html#line.1825">NO_LOCATION_PROBLEM</a></pre>
 </li>
 </ul>
 <a name="NO_NOT_RETRIABLE">
@@ -225,7 +225,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NO_NOT_RETRIABLE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html#line.1825">NO_NOT_RETRIABLE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html#line.1826">NO_NOT_RETRIABLE</a></pre>
 </li>
 </ul>
 <a name="NO_RETRIES_EXHAUSTED">
@@ -234,7 +234,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NO_RETRIES_EXHAUSTED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html#line.1826">NO_RETRIES_EXHAUSTED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html#line.1827">NO_RETRIES_EXHAUSTED</a></pre>
 </li>
 </ul>
 <a name="NO_OTHER_SUCCEEDED">
@@ -243,7 +243,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>NO_OTHER_SUCCEEDED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html#line.1827">NO_OTHER_SUCCEEDED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncProcess.Retry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncProcess.Retry.html#line.1828">NO_OTHER_SUCCEEDED</a></pre>
 </li>
 </ul>
 </li>


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html
index bf27873..e4df7cc 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.Call.html
@@ -75,2529 +75,2534 @@
 <span class="sourceLineNo">067</span><a name="line.67"></a>
 <span class="sourceLineNo">068</span>import org.apache.commons.logging.Log;<a name="line.68"></a>
 <span class="sourceLineNo">069</span>import org.apache.commons.logging.LogFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.conf.Configuration;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HConstants;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.Server;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.TableName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.User;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.io.BytesWritable;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.io.IntWritable;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.io.Writable;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.io.WritableUtils;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.util.StringUtils;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.htrace.TraceInfo;<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import com.google.protobuf.BlockingService;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import com.google.protobuf.CodedInputStream;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import com.google.protobuf.Message;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import com.google.protobuf.ServiceException;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import com.google.protobuf.TextFormat;<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>/**<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * An RPC server that hosts protobuf described Services.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> *<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.143"></a>
-<span class="sourceLineNo">144</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * and loops till done.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> *<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.151"></a>
-<span class="sourceLineNo">152</span> * and keep taking while the server is up.<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *<a name="line.153"></a>
-<span class="sourceLineNo">154</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * queue for Responder to pull from and return result to client.<a name="line.155"></a>
-<span class="sourceLineNo">156</span> *<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * @see RpcClientImpl<a name="line.157"></a>
-<span class="sourceLineNo">158</span> */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.159"></a>
-<span class="sourceLineNo">160</span>@InterfaceStability.Evolving<a name="line.160"></a>
-<span class="sourceLineNo">161</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      = new CallQueueTooBigException();<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final boolean authorize;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private boolean isSecurityEnabled;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final byte CURRENT_VERSION = 0;<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>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * How many calls/handler are allowed in the queue.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * The maximum size that we can hold in the RPC queue<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private final IPCUtil ipcUtil;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    Server.class.getName());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  protected ServiceAuthorizationManager authManager;<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * after the call returns.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  protected final InetSocketAddress bindAddress;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected int port;                             // port we listen on<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private int readThreads;                        // number of read threads<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.210"></a>
-<span class="sourceLineNo">211</span>                                                  // which a client may be<a name="line.211"></a>
-<span class="sourceLineNo">212</span>                                                  // disconnected<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.213"></a>
-<span class="sourceLineNo">214</span>                                                  // connections after which we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>                                                  // will start cleaning up idle<a name="line.215"></a>
-<span class="sourceLineNo">216</span>                                                  // connections<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.217"></a>
-<span class="sourceLineNo">218</span>                                                  // connections to nuke<a name="line.218"></a>
-<span class="sourceLineNo">219</span>                                                  // during a cleanup<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected MetricsHBaseServer metrics;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  protected final Configuration conf;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private int maxQueueSize;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  protected int socketSendBufferSize;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  protected final long purgeTimeout;    // in milliseconds<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  volatile boolean running = true;<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  /**<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * for business by the call to {@link #start()}.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  volatile boolean started = false;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final Counter callQueueSize = new Counter();<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  //maintain a list<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  //of client connections<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  private Listener listener = null;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected Responder responder = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  protected int numConnections = 0;<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /** Default value for above params */<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  private final int warnResponseTime;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  private final int warnResponseSize;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  private final Server server;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private final RpcScheduler scheduler;<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private UserProvider userProvider;<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>  private final BoundedByteBufferPool reservoir;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * the result.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  class Call implements RpcCallContext {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    protected int id;                             // the client's call id<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    protected BlockingService service;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    protected MethodDescriptor md;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    protected RequestHeader header;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    protected Message param;                      // the parameter passed<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // Optional cell data passed outside of protobufs.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    protected CellScanner cellScanner;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    protected Connection connection;              // connection to client<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    protected long timestamp;      // the time received when response is null<a name="line.295"></a>
-<span class="sourceLineNo">296</span>                                   // the time served when response is not null<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>     * Chain of buffers to send as response.<a name="line.298"></a>
-<span class="sourceLineNo">299</span>     */<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    protected BufferChain response;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    protected Responder responder;<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>    protected long size;                          // size of current call<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    protected boolean isError;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    protected TraceInfo tinfo;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    private ByteBuffer cellBlock = null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>    private User user;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    private InetAddress remoteAddress;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    private RpcCallback callback;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>    private long responseCellSize = 0;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    private long responseBlockSize = 0;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    private boolean retryImmediatelySupported;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.319"></a>
-<span class="sourceLineNo">320</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      this.id = id;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      this.service = service;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      this.md = md;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      this.header = header;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      this.param = param;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      this.cellScanner = cellScanner;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      this.connection = connection;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      this.timestamp = System.currentTimeMillis();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      this.response = null;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      this.responder = responder;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      this.isError = false;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      this.size = size;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      this.tinfo = tinfo;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      this.remoteAddress = remoteAddress;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      this.retryImmediatelySupported =<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          connection == null? null: connection.retryImmediatelySupported;<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.341"></a>
-<span class="sourceLineNo">342</span>     * cleanup.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>     */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    void done() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        // Return buffer to reservoir now we are done with it.<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        reservoir.putBuffer(this.cellBlock);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        this.cellBlock = null;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    public String toString() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      return toShortString() + " param: " +<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        " connection: " + connection.toString();<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>    protected RequestHeader getHeader() {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      return this.header;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    /*<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     * the payload of a command<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    String toShortString() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      String serviceName = this.connection.service != null ?<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.373"></a>
-<span class="sourceLineNo">374</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      String serviceName = this.connection.service != null ?<a name="line.380"></a>
-<span class="sourceLineNo">381</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      return serviceName + "." + methodName;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      this.response = new BufferChain(response);<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>    protected synchronized void setResponse(Object m, final CellScanner cells,<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        Throwable t, String errorMsg) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      if (this.isError) return;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      if (t != null) this.isError = true;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      BufferChain bc = null;<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      try {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>        ResponseHeader.Builder headerBuilder = ResponseHeader.newBuilder();<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // Presume it a pb Message.  Could be null.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        Message result = (Message)m;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        // Call id.<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        headerBuilder.setCallId(this.id);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        if (t != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          ExceptionResponse.Builder exceptionBuilder = ExceptionResponse.newBuilder();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          exceptionBuilder.setExceptionClassName(t.getClass().getName());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          exceptionBuilder.setStackTrace(errorMsg);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          exceptionBuilder.setDoNotRetry(t instanceof DoNotRetryIOException);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          if (t instanceof RegionMovedException) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>            // Special casing for this exception.  This is only one carrying a payload.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            // Do this instead of build a generic system for allowing exceptions carry<a name="line.408"></a>
-<span class="sourceLineNo">409</span>            // any kind of payload.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            RegionMovedException rme = (RegionMovedException)t;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>            exceptionBuilder.setHostname(rme.getHostname());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            exceptionBuilder.setPort(rme.getPort());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>          }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          // Set the exception as the result of the method invocation.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          headerBuilder.setException(exceptionBuilder.build());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        // Pass reservoir to buildCellBlock. Keep reference to returne so can add it back to the<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        // reservoir when finished. This is hacky and the hack is not contained but benefits are<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        // high when we can avoid a big buffer allocation on each rpc.<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        this.cellBlock = ipcUtil.buildCellBlock(this.connection.codec,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          this.connection.compressionCodec, cells, reservoir);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        if (this.cellBlock != null) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          CellBlockMeta.Builder cellBlockBuilder = CellBlockMeta.newBuilder();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          // Presumes the cellBlock bytebuffer has been flipped so limit has total size in it.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          cellBlockBuilder.setLength(this.cellBlock.limit());<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          headerBuilder.setCellBlockMeta(cellBlockBuilder.build());<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        Message header = headerBuilder.build();<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>        // Organize the response as a set of bytebuffers rather than collect it all together inside<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        // one big byte array; save on allocations.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        ByteBuffer bbHeader = IPCUtil.getDelimitedMessageAsByteBuffer(header);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        ByteBuffer bbResult = IPCUtil.getDelimitedMessageAsByteBuffer(result);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        int totalSize = bbHeader.capacity() + (bbResult == null? 0: bbResult.limit()) +<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          (this.cellBlock == null? 0: this.cellBlock.limit());<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        ByteBuffer bbTotalSize = ByteBuffer.wrap(Bytes.toBytes(totalSize));<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        bc = new BufferChain(bbTotalSize, bbHeader, bbResult, this.cellBlock);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (connection.useWrap) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          bc = wrapWithSasl(bc);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      } catch (IOException e) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        LOG.warn("Exception while creating response " + e);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      this.response = bc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      // Once a response message is created and set to this.response, this Call can be treated as<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      // done. The Responder thread will do the n/w write of this message back to client.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      if (this.callback != null) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        try {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          this.callback.run();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        } catch (Exception e) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          // Don't allow any exception here to kill this handler thread.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          LOG.warn("Exception while running the Rpc Callback.", e);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    private BufferChain wrapWithSasl(BufferChain bc)<a name="line.457"></a>
-<span class="sourceLineNo">458</span>        throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      if (!this.connection.useSasl) return bc;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      // Looks like no way around this; saslserver wants a byte array.  I have to make it one.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      // THIS IS A BIG UGLY COPY.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      byte [] responseBytes = bc.getBytes();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      byte [] token;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      // synchronization may be needed since there can be multiple Handler<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      // threads using saslServer to wrap responses.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      synchronized (connection.saslServer) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        token = connection.saslServer.wrap(responseBytes, 0, responseBytes.length);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      if (LOG.isTraceEnabled()) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        LOG.trace("Adding saslServer wrapped token of size " + token.length<a name="line.470"></a>
-<span class="sourceLineNo">471</span>            + " as call response.");<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>      ByteBuffer bbTokenLength = ByteBuffer.wrap(Bytes.toBytes(token.length));<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      ByteBuffer bbTokenBytes = ByteBuffer.wrap(token);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      return new BufferChain(bbTokenLength, bbTokenBytes);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    }<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>    @Override<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    public boolean isClientCellBlockSupported() {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return this.connection != null &amp;&amp; this.connection.codec != null;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    @Override<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    public long disconnectSince() {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      if (!connection.channel.isOpen()) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        return System.currentTimeMillis() - timestamp;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      } else {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        return -1L;<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><a name="line.492"></a>
-<span class="sourceLineNo">493</span>    public long getSize() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      return this.size;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>    public long getResponseCellSize() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return responseCellSize;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    public void incrementResponseCellSize(long cellSize) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      responseCellSize += cellSize;<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>    @Override<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    public long getResponseBlockSize() {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      return responseBlockSize;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>    @Override<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    public void incrementResponseBlockSize(long blockSize) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      responseBlockSize += blockSize;<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    }<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>    public synchronized void sendResponseIfReady() throws IOException {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.responder.doRespond(this);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public UserGroupInformation getRemoteUser() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      return connection.ugi;<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    }<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>    @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    public User getRequestUser() {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      return user;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    @Override<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    public String getRequestUserName() {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      User user = getRequestUser();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      return user == null? null: user.getShortName();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span><a name="line.533"></a>
-<span class="sourceLineNo">534</span>    @Override<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    public InetAddress getRemoteAddress() {<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      return remoteAddress;<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>    @Override<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    public VersionInfo getClientVersionInfo() {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      return connection.getVersionInfo();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>    @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    public synchronized void setCallBack(RpcCallback callback) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.callback = callback;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    @Override<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    public boolean isRetryImmediatelySupported() {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      return retryImmediatelySupported;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<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>  /** Listens on the socket. Creates jobs for the handler threads*/<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  private class Listener extends Thread {<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    private ServerSocketChannel acceptChannel = null; //the accept channel<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private Selector selector = null; //the selector that we use for the server<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    private Reader[] readers = null;<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    private int currentReader = 0;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    private Random rand = new Random();<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    private long lastCleanupRunTime = 0; //the last time when a cleanup connec-<a name="line.563"></a>
-<span class="sourceLineNo">564</span>                                         //-tion (for idle connections) ran<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    private long cleanupInterval = 10000; //the minimum interval between<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                                          //two cleanup runs<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    private int backlogLength;<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>    private ExecutorService readPool;<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>    public Listener(final String name) throws IOException {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      super(name);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      backlogLength = conf.getInt("hbase.ipc.server.listen.queue.size", 128);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      // Create a new server socket and set to non blocking mode<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      acceptChannel = ServerSocketChannel.open();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      acceptChannel.configureBlocking(false);<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Bind the server socket to the binding addrees (can be different from the default interface)<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      bind(acceptChannel.socket(), bindAddress, backlogLength);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      port = acceptChannel.socket().getLocalPort(); //Could be an ephemeral port<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      address = (InetSocketAddress)acceptChannel.socket().getLocalSocketAddress();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      // create a selector;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      selector= Selector.open();<a name="line.583"></a>
-<span class="sourceLineNo">584</span><a name="line.584"></a>
-<span class="sourceLineNo">585</span>      readers = new Reader[readThreads];<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      readPool = Executors.newFixedThreadPool(readThreads,<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        new ThreadFactoryBuilder().setNameFormat(<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          "RpcServer.reader=%d,bindAddress=" + bindAddress.getHostName() +<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          ",port=" + port).setDaemon(true).build());<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      for (int i = 0; i &lt; readThreads; ++i) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        Reader reader = new Reader();<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        readers[i] = reader;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        readPool.execute(reader);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      LOG.info(getName() + ": started " + readThreads + " reader(s) listening on port=" + port);<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>      // Register accepts on the server socket with the selector.<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      acceptChannel.register(selector, SelectionKey.OP_ACCEPT);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.setName("RpcServer.listener,port=" + port);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      this.setDaemon(true);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.CallQueueTooBigException;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.conf.Configuration;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.HConstants;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.Server;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.TableName;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.Operation;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.codec.Codec;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.io.ByteBufferOutputStream;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.io.BoundedByteBufferPool;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.CellBlockMeta;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ConnectionHeader;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ExceptionResponse;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.ResponseHeader;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.UserInformation;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.security.AuthMethod;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.security.HBasePolicyProvider;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.security.User;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslDigestCallbackHandler;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.security.HBaseSaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.security.SaslStatus;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.util.Counter;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.io.BytesWritable;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.io.IntWritable;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.io.Writable;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.io.WritableUtils;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.io.compress.CompressionCodec;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.security.authorize.AuthorizationException;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.security.authorize.PolicyProvider;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.security.token.SecretManager;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.security.token.SecretManager.InvalidToken;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.security.token.TokenIdentifier;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.util.StringUtils;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.codehaus.jackson.map.ObjectMapper;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.htrace.TraceInfo;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>import com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import com.google.protobuf.BlockingService;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import com.google.protobuf.CodedInputStream;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import com.google.protobuf.Descriptors.MethodDescriptor;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import com.google.protobuf.Message;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import com.google.protobuf.ServiceException;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import com.google.protobuf.TextFormat;<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>/**<a name="line.140"></a>
+<span class="sourceLineNo">141</span> * An RPC server that hosts protobuf described Services.<a name="line.141"></a>
+<span class="sourceLineNo">142</span> *<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * An RpcServer instance has a Listener that hosts the socket.  Listener has fixed number<a name="line.143"></a>
+<span class="sourceLineNo">144</span> * of Readers in an ExecutorPool, 10 by default.  The Listener does an accept and then<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * round robin a Reader is chosen to do the read.  The reader is registered on Selector.  Read does<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * total read off the channel and the parse from which it makes a Call.  The call is wrapped in a<a name="line.146"></a>
+<span class="sourceLineNo">147</span> * CallRunner and passed to the scheduler to be run.  Reader goes back to see if more to be done<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * and loops till done.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> *<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * &lt;p&gt;Scheduler can be variously implemented but default simple scheduler has handlers to which it<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * has given the queues into which calls (i.e. CallRunner instances) are inserted.  Handlers run<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * taking from the queue.  They run the CallRunner#run method on each item gotten from queue<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * and keep taking while the server is up.<a name="line.153"></a>
+<span class="sourceLineNo">154</span> *<a name="line.154"></a>
+<span class="sourceLineNo">155</span> * CallRunner#run executes the call.  When done, asks the included Call to put itself on new<a name="line.155"></a>
+<span class="sourceLineNo">156</span> * queue for Responder to pull from and return result to client.<a name="line.156"></a>
+<span class="sourceLineNo">157</span> *<a name="line.157"></a>
+<span class="sourceLineNo">158</span> * @see RpcClientImpl<a name="line.158"></a>
+<span class="sourceLineNo">159</span> */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})<a name="line.160"></a>
+<span class="sourceLineNo">161</span>@InterfaceStability.Evolving<a name="line.161"></a>
+<span class="sourceLineNo">162</span>public class RpcServer implements RpcServerInterface, ConfigurationObserver {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  // LOG is being used in CallRunner and the log level is being changed in tests<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public static final Log LOG = LogFactory.getLog(RpcServer.class);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static final CallQueueTooBigException CALL_QUEUE_TOO_BIG_EXCEPTION<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      = new CallQueueTooBigException();<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  private final boolean authorize;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private boolean isSecurityEnabled;<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public static final byte CURRENT_VERSION = 0;<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * Whether we allow a fallback to SIMPLE auth for insecure clients when security is enabled.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public static final String FALLBACK_TO_INSECURE_CLIENT_AUTH =<a name="line.176"></a>
+<span class="sourceLineNo">177</span>          "hbase.ipc.server.fallback-to-simple-auth-allowed";<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  /**<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * How many calls/handler are allowed in the queue.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  static final int DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER = 10;<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  /**<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * The maximum size that we can hold in the RPC queue<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  private static final int DEFAULT_MAX_CALLQUEUE_SIZE = 1024 * 1024 * 1024;<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final IPCUtil ipcUtil;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  private static final String AUTH_FAILED_FOR = "Auth failed for ";<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  private static final String AUTH_SUCCESSFUL_FOR = "Auth successful for ";<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  private static final Log AUDITLOG = LogFactory.getLog("SecurityLogger." +<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    Server.class.getName());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  protected SecretManager&lt;TokenIdentifier&gt; secretManager;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  protected ServiceAuthorizationManager authManager;<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  /** This is set to Call object before Handler invokes an RPC and ybdie<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * after the call returns.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  protected static final ThreadLocal&lt;Call&gt; CurCall = new ThreadLocal&lt;Call&gt;();<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  /** Keeps MonitoredRPCHandler per handler thread. */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  static final ThreadLocal&lt;MonitoredRPCHandler&gt; MONITORED_RPC<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      = new ThreadLocal&lt;MonitoredRPCHandler&gt;();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  protected final InetSocketAddress bindAddress;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  protected int port;                             // port we listen on<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  protected InetSocketAddress address;            // inet address we listen on<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private int readThreads;                        // number of read threads<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected int maxIdleTime;                      // the maximum idle time after<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                                  // which a client may be<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                                  // disconnected<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  protected int thresholdIdleConnections;         // the number of idle<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                                  // connections after which we<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                                  // will start cleaning up idle<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                                  // connections<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  int maxConnectionsToNuke;                       // the max number of<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                                  // connections to nuke<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                                  // during a cleanup<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  protected MetricsHBaseServer metrics;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  protected final Configuration conf;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  private int maxQueueSize;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  protected int socketSendBufferSize;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  protected final boolean tcpNoDelay;   // if T then disable Nagle's Algorithm<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  protected final boolean tcpKeepAlive; // if T then use keepalives<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  protected final long purgeTimeout;    // in milliseconds<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>   * This flag is used to indicate to sub threads when they should go down.  When we call<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * {@link #start()}, all threads started will consult this flag on whether they should<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * keep going.  It is set to false when {@link #stop()} is called.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  volatile boolean running = true;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  /**<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * This flag is set to true after all threads are up and 'running' and the server is then opened<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * for business by the call to {@link #start()}.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   */<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  volatile boolean started = false;<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  /**<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * This is a running count of the size of all outstanding calls by size.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  protected final Counter callQueueSize = new Counter();<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>  protected final List&lt;Connection&gt; connectionList =<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    Collections.synchronizedList(new LinkedList&lt;Connection&gt;());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  //maintain a list<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  //of client connections<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  private Listener listener = null;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  protected Responder responder = null;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  protected AuthenticationTokenSecretManager authTokenSecretMgr = null;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  protected int numConnections = 0;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>  protected HBaseRPCErrorHandler errorHandler = null;<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  private static final String WARN_RESPONSE_TIME = "hbase.ipc.warn.response.time";<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  private static final String WARN_RESPONSE_SIZE = "hbase.ipc.warn.response.size";<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>  /** Default value for above params */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  private static final int DEFAULT_WARN_RESPONSE_TIME = 10000; // milliseconds<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  private static final int DEFAULT_WARN_RESPONSE_SIZE = 100 * 1024 * 1024;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  private static final ObjectMapper MAPPER = new ObjectMapper();<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  private final int warnResponseTime;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  private final int warnResponseSize;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  private final Server server;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  private final List&lt;BlockingServiceAndInterface&gt; services;<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  private final RpcScheduler scheduler;<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>  private UserProvider userProvider;<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>  private final BoundedByteBufferPool reservoir;<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  private volatile boolean allowFallbackToSimpleAuth;<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>   * Datastructure that holds all necessary to a method invocation and then afterward, carries<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * the result.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  class Call implements RpcCallContext {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    protected int id;                             // the client's call id<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    protected BlockingService service;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    protected MethodDescriptor md;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    protected RequestHeader header;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    protected Message param;                      // the parameter passed<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    // Optional cell data passed outside of protobufs.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    protected CellScanner cellScanner;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    protected Connection connection;              // connection to client<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    protected long timestamp;      // the time received when response is null<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                   // the time served when response is not null<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span>     * Chain of buffers to send as response.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>     */<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    protected BufferChain response;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    protected Responder responder;<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    protected long size;                          // size of current call<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    protected boolean isError;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    protected TraceInfo tinfo;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    private ByteBuffer cellBlock = null;<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    private User user;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    private InetAddress remoteAddress;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    private RpcCallback callback;<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    private long responseCellSize = 0;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    private long responseBlockSize = 0;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    private boolean retryImmediatelySupported;<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        justification="Can't figure why this complaint is happening... see below")<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    Call(int id, final BlockingService service, final MethodDescriptor md, RequestHeader header,<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         Message param, CellScanner cellScanner, Connection connection, Responder responder,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         long size, TraceInfo tinfo, final InetAddress remoteAddress) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      this.id = id;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      this.service = service;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      this.md = md;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      this.header = header;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      this.param = param;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      this.cellScanner = cellScanner;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      this.connection = connection;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      this.timestamp = System.currentTimeMillis();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      this.response = null;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      this.responder = responder;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      this.isError = false;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      this.size = size;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      this.tinfo = tinfo;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      this.user = connection == null? null: connection.user; // FindBugs: NP_NULL_ON_SOME_PATH<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      this.remoteAddress = remoteAddress;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      this.retryImmediatelySupported =<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          connection == null? null: connection.retryImmediatelySupported;<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>     * Call is done. Execution happened and we returned results to client. It is now safe to<a name="line.342"></a>
+<span class="sourceLineNo">343</span>     * cleanup.<a name="line.343"></a>
+<span class="sourceLineNo">344</span>     */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC",<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        justification="Presume the lock on processing request held by caller is protection enough")<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    void done() {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      if (this.cellBlock != null &amp;&amp; reservoir != null) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        // Return buffer to reservoir now we are done with it.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        reservoir.putBuffer(this.cellBlock);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        this.cellBlock = null;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      this.connection.decRpcCount();  // Say that we're done with this call.<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    @Override<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    public String toString() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      return toShortString() + " param: " +<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        (this.param != null? ProtobufUtil.getShortTextFormat(this.param): "") +<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        " connection: " + connection.toString();<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    protected RequestHeader getHeader() {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      return this.header;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>    /*<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * Short string representation without param info because param itself could be huge depends on<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * the payload of a command<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    String toShortString() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      String serviceName = this.connection.service != null ?<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          this.connection.service.getDescriptorForType().getName() : "null";<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      return "callId: " + this.id + " service: " + serviceName +<a name="line.374"></a>
+<span class="sourceLineNo">375</span>          " methodName: " + ((this.md != null) ? this.md.getName() : "n/a") +<a name="line.375"></a>
+<span class="sourceLineNo">376</span>          " size: " + StringUtils.TraditionalBinaryPrefix.long2String(this.size, "", 1) +<a name="line.376"></a>
+<span class="sourceLineNo">377</span>          " connection: " + connection.toString();<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>    String toTraceString() {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      String serviceName = this.connection.service != null ?<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                           this.connection.service.getDescriptorForType().getName() : "";<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      String methodName = (this.md != null) ? this.md.getName() : "";<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return serviceName + "." + methodName;<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>    protected synchronized void setSaslTokenResponse(ByteBuffer response) {<a name="line.387"></a>
+<span class="

<TRUNCATED>

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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/class-use/RpcServer.CallQueueTooBigException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/class-use/RpcServer.CallQueueTooBigException.html b/devapidocs/org/apache/hadoop/hbase/ipc/class-use/RpcServer.CallQueueTooBigException.html
deleted file mode 100644
index 9e5ab0f..0000000
--- a/devapidocs/org/apache/hadoop/hbase/ipc/class-use/RpcServer.CallQueueTooBigException.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<script type="text/javascript"><!--
-    if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException (Apache HBase 2.0.0-SNAPSHOT API)";
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar_top">
-<!--   -->
-</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">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/ipc/class-use/RpcServer.CallQueueTooBigException.html" target="_top">Frames</a></li>
-<li><a href="RpcServer.CallQueueTooBigException.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All 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.ipc.RpcServer.CallQueueTooBigException" class="title">Uses of Class<br>org.apache.hadoop.hbase.ipc.RpcServer.CallQueueTooBigException</h2>
-</div>
-<div class="classUseContainer">
-<ul class="blockList">
-<li class="blockList">
-<table 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/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</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.ipc">org.apache.hadoop.hbase.ipc</a></td>
-<td class="colLast">
-<div class="block">Tools to help define network clients and servers.</div>
-</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList">
-<ul class="blockList">
-<li class="blockList"><a name="org.apache.hadoop.hbase.ipc">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</a> in <a href="../../../../../../org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a></h3>
-<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
-<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/ipc/package-summary.html">org.apache.hadoop.hbase.ipc</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</a></code></td>
-<td class="colLast"><span class="strong">RpcServer.</span><code><strong><a href="../../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#CALL_QUEUE_TOO_BIG_EXCEPTION">CALL_QUEUE_TOO_BIG_EXCEPTION</a></strong></code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar_bottom">
-<!--   -->
-</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">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/ipc/class-use/RpcServer.CallQueueTooBigException.html" target="_top">Frames</a></li>
-<li><a href="RpcServer.CallQueueTooBigException.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All 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;2016 <a href="http://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/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-frame.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-frame.html
index bd5133f..626bb83 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-frame.html
@@ -82,7 +82,6 @@
 <li><a href="FatalConnectionException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">FatalConnectionException</a></li>
 <li><a href="IPCUtil.CellScannerButNoCodecException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">IPCUtil.CellScannerButNoCodecException</a></li>
 <li><a href="RemoteWithExtrasException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">RemoteWithExtrasException</a></li>
-<li><a href="RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">RpcServer.CallQueueTooBigException</a></li>
 <li><a href="ServerNotRunningYetException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">ServerNotRunningYetException</a></li>
 <li><a href="StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">StoppedRpcClientException</a></li>
 <li><a href="UnknownServiceException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">UnknownServiceException</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-summary.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-summary.html
index 88ef99d..6a54972 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-summary.html
@@ -464,30 +464,26 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/ipc/ServerNotRunningYetException.html" title="class in org.apache.hadoop.hbase.ipc">ServerNotRunningYetException</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc">StoppedRpcClientException</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/ipc/UnknownServiceException.html" title="class in org.apache.hadoop.hbase.ipc">UnknownServiceException</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/ipc/UnsupportedCellCodecException.html" title="class in org.apache.hadoop.hbase.ipc">UnsupportedCellCodecException</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/ipc/UnsupportedCompressionCodecException.html" title="class in org.apache.hadoop.hbase.ipc">UnsupportedCompressionCodecException</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/ipc/WrongVersionException.html" title="class in org.apache.hadoop.hbase.ipc">WrongVersionException</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/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 9986a73..4306cd7 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -201,7 +201,6 @@
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RemoteWithExtrasException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">RemoteWithExtrasException</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">RpcServer.CallQueueTooBigException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/ServerNotRunningYetException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="strong">ServerNotRunningYetException</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/ipc/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-use.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-use.html
index 6f60c89..4cc9cef 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-use.html
@@ -331,31 +331,28 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/ipc/class-use/RpcServer.CallQueueTooBigException.html#org.apache.hadoop.hbase.ipc">RpcServer.CallQueueTooBigException</a>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/ipc/class-use/RpcServer.Connection.html#org.apache.hadoop.hbase.ipc">RpcServer.Connection</a>
 <div class="block">Reads calls from a connection and queues them for handling.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/ipc/class-use/RpcServer.Listener.html#org.apache.hadoop.hbase.ipc">RpcServer.Listener</a>
 <div class="block">Listens on the socket.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/ipc/class-use/RpcServer.Listener.Reader.html#org.apache.hadoop.hbase.ipc">RpcServer.Listener.Reader</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/ipc/class-use/RpcServer.Responder.html#org.apache.hadoop.hbase.ipc">RpcServer.Responder</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/ipc/class-use/RpcServerInterface.html#org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/ipc/class-use/StoppedRpcClientException.html#org.apache.hadoop.hbase.ipc">StoppedRpcClientException</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/ipc/class-use/TimeLimitedRpcController.html#org.apache.hadoop.hbase.ipc">TimeLimitedRpcController</a>&nbsp;</td>
 </tr>
 </tbody>

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-frame.html b/devapidocs/org/apache/hadoop/hbase/package-frame.html
index 767fe71..055b947 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-frame.html
@@ -141,6 +141,7 @@
 </ul>
 <h2 title="Exceptions">Exceptions</h2>
 <ul title="Exceptions">
+<li><a href="CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase" target="classFrame">CallQueueTooBigException</a></li>
 <li><a href="ClockOutOfSyncException.html" title="class in org.apache.hadoop.hbase" target="classFrame">ClockOutOfSyncException</a></li>
 <li><a href="CoordinatedStateException.html" title="class in org.apache.hadoop.hbase" target="classFrame">CoordinatedStateException</a></li>
 <li><a href="DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase" target="classFrame">DoNotRetryIOException</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-summary.html b/devapidocs/org/apache/hadoop/hbase/package-summary.html
index b2589be..d41febb 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-summary.html
@@ -811,83 +811,87 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase">CallQueueTooBigException</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/ClockOutOfSyncException.html" title="class in org.apache.hadoop.hbase">ClockOutOfSyncException</a></td>
 <td class="colLast">
 <div class="block">This exception is thrown by the master when a region server clock skew is
  too high.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/CoordinatedStateException.html" title="class in org.apache.hadoop.hbase">CoordinatedStateException</a></td>
 <td class="colLast">
 <div class="block">Thrown by operations requiring coordination state access or manipulation
  when internal error within coordination engine (or other internal implementation) occurs.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a></td>
 <td class="colLast">
 <div class="block">Subclass if exception is not meant to be retried: e.g.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/DroppedSnapshotException.html" title="class in org.apache.hadoop.hbase">DroppedSnapshotException</a></td>
 <td class="colLast">
 <div class="block">Thrown during flush if the possibility snapshot content was not properly
  persisted into store files.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></td>
 <td class="colLast">
 <div class="block">All hbase specific IOExceptions should be subclasses of HBaseIOException</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/InvalidFamilyOperationException.html" title="class in org.apache.hadoop.hbase">InvalidFamilyOperationException</a></td>
 <td class="colLast">
 <div class="block">Thrown if a request is table schema modification is requested but
  made for an invalid family name.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a></td>
 <td class="colLast">
 <div class="block">Thrown if the master is not running</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/MultiActionResultTooLarge.html" title="class in org.apache.hadoop.hbase">MultiActionResultTooLarge</a></td>
 <td class="colLast">
 <div class="block">Exception thrown when the result needs to be chunked on the server side.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/NamespaceExistException.html" title="class in org.apache.hadoop.hbase">NamespaceExistException</a></td>
 <td class="colLast">
 <div class="block">Thrown when a namespace exists but should not</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/NamespaceNotFoundException.html" title="class in org.apache.hadoop.hbase">NamespaceNotFoundException</a></td>
 <td class="colLast">
 <div class="block">Thrown when a namespace can not be located</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/NotAllMetaRegionsOnlineException.html" title="class in org.apache.hadoop.hbase">NotAllMetaRegionsOnlineException</a></td>
 <td class="colLast">
 <div class="block">Thrown when an operation requires the root and all meta regions to be online</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/NotServingRegionException.html" title="class in org.apache.hadoop.hbase">NotServingRegionException</a></td>
 <td class="colLast">
 <div class="block">Thrown by a region server if it is sent a request for a region it is not
  serving.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a></td>
 <td class="colLast">
 <div class="block">This exception is thrown by the master when a region server was shut down and
@@ -896,76 +900,76 @@
  operations, or when an operation is performed on a region server that is still starting.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a></td>
 <td class="colLast">
 <div class="block">Thrown when something happens related to region handling.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/RegionTooBusyException.html" title="class in org.apache.hadoop.hbase">RegionTooBusyException</a></td>
 <td class="colLast">
 <div class="block">Thrown by a region server if it will block and wait to serve a request.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/RetryImmediatelyException.html" title="class in org.apache.hadoop.hbase">RetryImmediatelyException</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/ServiceNotRunningException.html" title="class in org.apache.hadoop.hbase">ServiceNotRunningException</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/TableExistsException.html" title="class in org.apache.hadoop.hbase">TableExistsException</a></td>
 <td class="colLast">
 <div class="block">Thrown when a table exists but should not</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a></td>
 <td class="colLast">
 <div class="block">Failed to find .tableinfo file under table dir</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/TableNotDisabledException.html" title="class in org.apache.hadoop.hbase">TableNotDisabledException</a></td>
 <td class="colLast">
 <div class="block">Thrown if a table should be offline but is not</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/TableNotEnabledException.html" title="class in org.apache.hadoop.hbase">TableNotEnabledException</a></td>
 <td class="colLast">
 <div class="block">Thrown if a table should be enabled but is not</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a></td>
 <td class="colLast">
 <div class="block">Thrown when a table can not be located</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/UnknownRegionException.html" title="class in org.apache.hadoop.hbase">UnknownRegionException</a></td>
 <td class="colLast">
 <div class="block">Thrown when we are asked to operate on a region we know nothing about.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/UnknownScannerException.html" title="class in org.apache.hadoop.hbase">UnknownScannerException</a></td>
 <td class="colLast">
 <div class="block">Thrown if a region server is passed an unknown scanner id.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/YouAreDeadException.html" title="class in org.apache.hadoop.hbase">YouAreDeadException</a></td>
 <td class="colLast">
 <div class="block">This exception is thrown by the master when a region server reports and is
  already being processed as dead.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/hadoop/hbase/ZooKeeperConnectionException.html" title="class in org.apache.hadoop.hbase">ZooKeeperConnectionException</a></td>
 <td class="colLast">
 <div class="block">Thrown if the client can't connect to zookeeper</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/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 65fabe6..35e1850 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -240,6 +240,7 @@
 </li>
 <li type="circle">java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><span class="strong">IOException</span></a>
 <ul>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CallQueueTooBigException.html" title="class in org.apache.hadoop.hbase"><span class="strong">CallQueueTooBigException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClockOutOfSyncException.html" title="class in org.apache.hadoop.hbase"><span class="strong">ClockOutOfSyncException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/DroppedSnapshotException.html" title="class in org.apache.hadoop.hbase"><span class="strong">DroppedSnapshotException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase"><span class="strong">HBaseIOException</span></a>
@@ -351,8 +352,8 @@
 </ul>
 <h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/VersionAnnotation.html" title="annotation in org.apache.hadoop.hbase"><span class="strong">VersionAnnotation</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaMutationAnnotation.html" title="annotation in org.apache.hadoop.hbase"><span class="strong">MetaMutationAnnotation</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/VersionAnnotation.html" title="annotation in org.apache.hadoop.hbase"><span class="strong">VersionAnnotation</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 </ul>
 <h2 title="Enum Hierarchy">Enum Hierarchy</h2>
 <ul>
@@ -362,12 +363,12 @@
 <ul>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="strong">MetaTableAccessor.QueryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="strong">HConstants.OperationStatusCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.Modify.html" title="enum in org.apache.hadoop.hbase"><span class="strong">HConstants.Modify</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="strong">HealthChecker.HealthCheckerExitStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="strong">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="strong">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.Modify.html" title="enum in org.apache.hadoop.hbase"><span class="strong">HConstants.Modify</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="strong">KeyValue.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="strong">HealthChecker.HealthCheckerExitStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="strong">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="strong">Coprocessor.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/org/apache/hadoop/hbase/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-use.html b/devapidocs/org/apache/hadoop/hbase/package-use.html
index 08b7983..c397dab 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-use.html
@@ -1618,37 +1618,40 @@ service.</div>
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/CallQueueTooBigException.html#org.apache.hadoop.hbase.ipc">CallQueueTooBigException</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/CellScannable.html#org.apache.hadoop.hbase.ipc">CellScannable</a>
 <div class="block">Implementer can return a CellScanner over its Cell content.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/CellScanner.html#org.apache.hadoop.hbase.ipc">CellScanner</a>
 <div class="block">An interface for iterating through a sequence of cells.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html#org.apache.hadoop.hbase.ipc">DoNotRetryIOException</a>
 <div class="block">Subclass if exception is not meant to be retried: e.g.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/HBaseIOException.html#org.apache.hadoop.hbase.ipc">HBaseIOException</a>
 <div class="block">All hbase specific IOExceptions should be subclasses of HBaseIOException</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/Server.html#org.apache.hadoop.hbase.ipc">Server</a>
 <div class="block">Defines the set of shared functions implemented by HBase servers (Masters
  and RegionServers).</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/ServerName.html#org.apache.hadoop.hbase.ipc">ServerName</a>
 <div class="block">Instance of an HBase ServerName.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/TableName.html#org.apache.hadoop.hbase.ipc">TableName</a>
 <div class="block">Immutable POJO class for representing a table name.</div>
 </td>

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

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

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

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

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


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

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
new file mode 100644
index 0000000..5d603c1
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * distributed with this work for additional information<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * to you under the Apache License, Version 2.0 (the<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * "License"); you may not use this file except in compliance<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * with the License.  You may obtain a copy of the License at<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.11"></a>
+<span class="sourceLineNo">012</span> *<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Unless required by applicable law or agreed to in writing, software<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * See the License for the specific language governing permissions and<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * limitations under the License.<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>package org.apache.hadoop.hbase.exceptions;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.CallQueueTooBigException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.MultiActionResultTooLarge;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.RegionTooBusyException;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.RetryImmediatelyException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>@InterfaceAudience.Private<a name="line.31"></a>
+<span class="sourceLineNo">032</span>@InterfaceStability.Evolving<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public final class ClientExceptionsUtil {<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>  private ClientExceptionsUtil() {}<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public static boolean isMetaClearingException(Throwable cur) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    cur = findException(cur);<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>    if (cur == null) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>      return true;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    }<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    return !isSpecialException(cur) || (cur instanceof RegionMovedException);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  }<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  public static boolean isSpecialException(Throwable cur) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    return (cur instanceof RegionMovedException || cur instanceof RegionOpeningException<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        || cur instanceof RegionTooBusyException || cur instanceof ThrottlingException<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        || cur instanceof MultiActionResultTooLarge || cur instanceof RetryImmediatelyException<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        || cur instanceof CallQueueTooBigException);<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  }<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * Look for an exception we know in the remote exception:<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   * - hadoop.ipc wrapped exceptions<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * - nested exceptions<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   *<a name="line.58"></a>
+<span class="sourceLineNo">059</span>   * Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   *            ThrottlingException<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   * @return null if we didn't find the exception, the exception otherwise.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public static Throwable findException(Object exception) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    if (exception == null || !(exception instanceof Throwable)) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      return null;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    }<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    Throwable cur = (Throwable) exception;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    while (cur != null) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      if (isSpecialException(cur)) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        return cur;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      if (cur instanceof RemoteException) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        RemoteException re = (RemoteException) cur;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        cur = re.unwrapRemoteException(<a name="line.74"></a>
+<span class="sourceLineNo">075</span>            RegionOpeningException.class, RegionMovedException.class,<a name="line.75"></a>
+<span class="sourceLineNo">076</span>            RegionTooBusyException.class);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        if (cur == null) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>          cur = re.unwrapRemoteException();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        // unwrapRemoteException can return the exception given as a parameter when it cannot<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        //  unwrap it. In this case, there is no need to look further<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        // noinspection ObjectEquality<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        if (cur == re) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>          return cur;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      } else if (cur.getCause() != null) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        cur = cur.getCause();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      } else {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        return cur;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>    return null;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html
index d4dd41e..9cc5117 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/BalancedQueueRpcExecutor.html
@@ -80,9 +80,9 @@
 <span class="sourceLineNo">072</span>  }<a name="line.72"></a>
 <span class="sourceLineNo">073</span><a name="line.73"></a>
 <span class="sourceLineNo">074</span>  @Override<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public void dispatch(final CallRunner callTask) throws InterruptedException {<a name="line.75"></a>
+<span class="sourceLineNo">075</span>  public boolean dispatch(final CallRunner callTask) throws InterruptedException {<a name="line.75"></a>
 <span class="sourceLineNo">076</span>    int queueIndex = balancer.getNextQueue();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    queues.get(queueIndex).put(callTask);<a name="line.77"></a>
+<span class="sourceLineNo">077</span>    return queues.get(queueIndex).offer(callTask);<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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
index 190e423..b7a5179 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
@@ -32,77 +32,87 @@
 <span class="sourceLineNo">024</span>import java.util.concurrent.ArrayBlockingQueue;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.util.concurrent.TimeUnit;<a name="line.26"></a>
-<span class="sourceLineNo">027</span><a name="line.27"></a>
-<span class="sourceLineNo">028</span>/**<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * A very simple {@code }RpcScheduler} that serves incoming requests in order.<a name="line.29"></a>
-<span class="sourceLineNo">030</span> *<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * This can be used for HMaster, where no prioritization is needed.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>public class FifoRpcScheduler extends RpcScheduler {<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>  private final int handlerCount;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>  private final int maxQueueLength;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>  private ThreadPoolExecutor executor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public FifoRpcScheduler(Configuration conf, int handlerCount) {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    this.handlerCount = handlerCount;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    this.maxQueueLength = conf.getInt("hbase.ipc.server.max.callqueue.length",<a name="line.41"></a>
-<span class="sourceLineNo">042</span>        handlerCount * RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER);<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  }<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>  @Override<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  public void init(Context context) {<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    // no-op<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  }<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  @Override<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public void start() {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    this.executor = new ThreadPoolExecutor(<a name="line.52"></a>
-<span class="sourceLineNo">053</span>        handlerCount,<a name="line.53"></a>
-<span class="sourceLineNo">054</span>        handlerCount,<a name="line.54"></a>
-<span class="sourceLineNo">055</span>        60,<a name="line.55"></a>
-<span class="sourceLineNo">056</span>        TimeUnit.SECONDS,<a name="line.56"></a>
-<span class="sourceLineNo">057</span>        new ArrayBlockingQueue&lt;Runnable&gt;(maxQueueLength),<a name="line.57"></a>
-<span class="sourceLineNo">058</span>        new DaemonThreadFactory("FifoRpcScheduler.handler"),<a name="line.58"></a>
-<span class="sourceLineNo">059</span>        new ThreadPoolExecutor.CallerRunsPolicy());<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 stop() {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    this.executor.shutdown();<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  @Override<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  public void dispatch(final CallRunner task) throws IOException, InterruptedException {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    executor.submit(new Runnable() {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>      @Override<a name="line.70"></a>
-<span class="sourceLineNo">071</span>      public void run() {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>        task.setStatus(RpcServer.getStatus());<a name="line.72"></a>
-<span class="sourceLineNo">073</span>        task.run();<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>  }<a name="line.76"></a>
-<span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>  @Override<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  public int getGeneralQueueLength() {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    return executor.getQueue().size();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  @Override<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  public int getPriorityQueueLength() {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    return 0;<a name="line.85"></a>
+<span class="sourceLineNo">027</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * A very simple {@code }RpcScheduler} that serves incoming requests in order.<a name="line.30"></a>
+<span class="sourceLineNo">031</span> *<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * This can be used for HMaster, where no prioritization is needed.<a name="line.32"></a>
+<span class="sourceLineNo">033</span> */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>public class FifoRpcScheduler extends RpcScheduler {<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  private final int handlerCount;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  private final int maxQueueLength;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  private final AtomicInteger queueSize = new AtomicInteger(0);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  private ThreadPoolExecutor executor;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public FifoRpcScheduler(Configuration conf, int handlerCount) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    this.handlerCount = handlerCount;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    this.maxQueueLength = conf.getInt("hbase.ipc.server.max.callqueue.length",<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        handlerCount * RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>  @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  public void init(Context context) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    // no-op<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>  @Override<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  public void start() {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    this.executor = new ThreadPoolExecutor(<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        handlerCount,<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        handlerCount,<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        60,<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        TimeUnit.SECONDS,<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        new ArrayBlockingQueue&lt;Runnable&gt;(maxQueueLength),<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        new DaemonThreadFactory("FifoRpcScheduler.handler"),<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        new ThreadPoolExecutor.CallerRunsPolicy());<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>  @Override<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  public void stop() {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    this.executor.shutdown();<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>  @Override<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  public boolean dispatch(final CallRunner task) throws IOException, InterruptedException {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    // Executors provide no offer, so make our own.<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    int queued = queueSize.getAndIncrement();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    if (maxQueueLength &gt; 0 &amp;&amp; queued &gt;= maxQueueLength) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      queueSize.decrementAndGet();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      return false;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    executor.submit(new Runnable() {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      @Override<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      public void run() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        task.setStatus(RpcServer.getStatus());<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        task.run();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        queueSize.decrementAndGet();<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>    return true;<a name="line.85"></a>
 <span class="sourceLineNo">086</span>  }<a name="line.86"></a>
 <span class="sourceLineNo">087</span><a name="line.87"></a>
 <span class="sourceLineNo">088</span>  @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public int getReplicationQueueLength() {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    return 0;<a name="line.90"></a>
+<span class="sourceLineNo">089</span>  public int getGeneralQueueLength() {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    return executor.getQueue().size();<a name="line.90"></a>
 <span class="sourceLineNo">091</span>  }<a name="line.91"></a>
 <span class="sourceLineNo">092</span><a name="line.92"></a>
 <span class="sourceLineNo">093</span>  @Override<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public int getActiveRpcHandlerCount() {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    return executor.getActiveCount();<a name="line.95"></a>
+<span class="sourceLineNo">094</span>  public int getPriorityQueueLength() {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    return 0;<a name="line.95"></a>
 <span class="sourceLineNo">096</span>  }<a name="line.96"></a>
-<span class="sourceLineNo">097</span>}<a name="line.97"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>  @Override<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public int getReplicationQueueLength() {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    return 0;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>  @Override<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public int getActiveRpcHandlerCount() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    return executor.getActiveCount();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>}<a name="line.107"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html
index 000a2ff..7695dac 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html
@@ -168,7 +168,7 @@
 <span class="sourceLineNo">160</span>  }<a name="line.160"></a>
 <span class="sourceLineNo">161</span><a name="line.161"></a>
 <span class="sourceLineNo">162</span>  @Override<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  public void dispatch(final CallRunner callTask) throws InterruptedException {<a name="line.163"></a>
+<span class="sourceLineNo">163</span>  public boolean dispatch(final CallRunner callTask) throws InterruptedException {<a name="line.163"></a>
 <span class="sourceLineNo">164</span>    RpcServer.Call call = callTask.getCall();<a name="line.164"></a>
 <span class="sourceLineNo">165</span>    int queueIndex;<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    if (isWriteRequest(call.getHeader(), call.param)) {<a name="line.166"></a>
@@ -178,7 +178,7 @@
 <span class="sourceLineNo">170</span>    } else {<a name="line.170"></a>
 <span class="sourceLineNo">171</span>      queueIndex = numWriteQueues + readBalancer.getNextQueue();<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    }<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    queues.get(queueIndex).put(callTask);<a name="line.173"></a>
+<span class="sourceLineNo">173</span>    return queues.get(queueIndex).offer(callTask);<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  }<a name="line.174"></a>
 <span class="sourceLineNo">175</span><a name="line.175"></a>
 <span class="sourceLineNo">176</span>  private boolean isWriteRequest(final RequestHeader header, final Message param) {<a name="line.176"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.QueueBalancer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.QueueBalancer.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.QueueBalancer.html
index 7737c8f..88ac539 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.QueueBalancer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.QueueBalancer.html
@@ -94,7 +94,7 @@
 <span class="sourceLineNo">086</span>  public abstract int getQueueLength();<a name="line.86"></a>
 <span class="sourceLineNo">087</span><a name="line.87"></a>
 <span class="sourceLineNo">088</span>  /** Add the request to the executor queue */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public abstract void dispatch(final CallRunner callTask) throws InterruptedException;<a name="line.89"></a>
+<span class="sourceLineNo">089</span>  public abstract boolean dispatch(final CallRunner callTask) throws InterruptedException;<a name="line.89"></a>
 <span class="sourceLineNo">090</span><a name="line.90"></a>
 <span class="sourceLineNo">091</span>  /** Returns the list of request queues */<a name="line.91"></a>
 <span class="sourceLineNo">092</span>  protected abstract List&lt;BlockingQueue&lt;CallRunner&gt;&gt; getQueues();<a name="line.92"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.RandomQueueBalancer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.RandomQueueBalancer.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.RandomQueueBalancer.html
index 7737c8f..88ac539 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.RandomQueueBalancer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.RandomQueueBalancer.html
@@ -94,7 +94,7 @@
 <span class="sourceLineNo">086</span>  public abstract int getQueueLength();<a name="line.86"></a>
 <span class="sourceLineNo">087</span><a name="line.87"></a>
 <span class="sourceLineNo">088</span>  /** Add the request to the executor queue */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public abstract void dispatch(final CallRunner callTask) throws InterruptedException;<a name="line.89"></a>
+<span class="sourceLineNo">089</span>  public abstract boolean dispatch(final CallRunner callTask) throws InterruptedException;<a name="line.89"></a>
 <span class="sourceLineNo">090</span><a name="line.90"></a>
 <span class="sourceLineNo">091</span>  /** Returns the list of request queues */<a name="line.91"></a>
 <span class="sourceLineNo">092</span>  protected abstract List&lt;BlockingQueue&lt;CallRunner&gt;&gt; getQueues();<a name="line.92"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.html
index 7737c8f..88ac539 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcExecutor.html
@@ -94,7 +94,7 @@
 <span class="sourceLineNo">086</span>  public abstract int getQueueLength();<a name="line.86"></a>
 <span class="sourceLineNo">087</span><a name="line.87"></a>
 <span class="sourceLineNo">088</span>  /** Add the request to the executor queue */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public abstract void dispatch(final CallRunner callTask) throws InterruptedException;<a name="line.89"></a>
+<span class="sourceLineNo">089</span>  public abstract boolean dispatch(final CallRunner callTask) throws InterruptedException;<a name="line.89"></a>
 <span class="sourceLineNo">090</span><a name="line.90"></a>
 <span class="sourceLineNo">091</span>  /** Returns the list of request queues */<a name="line.91"></a>
 <span class="sourceLineNo">092</span>  protected abstract List&lt;BlockingQueue&lt;CallRunner&gt;&gt; getQueues();<a name="line.92"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html
index d49a145..e3c3a71 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html
@@ -66,7 +66,7 @@
 <span class="sourceLineNo">058</span>   *<a name="line.58"></a>
 <span class="sourceLineNo">059</span>   * @param task the request to be dispatched<a name="line.59"></a>
 <span class="sourceLineNo">060</span>   */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public abstract void dispatch(CallRunner task) throws IOException, InterruptedException;<a name="line.61"></a>
+<span class="sourceLineNo">061</span>  public abstract boolean dispatch(CallRunner task) throws IOException, InterruptedException;<a name="line.61"></a>
 <span class="sourceLineNo">062</span><a name="line.62"></a>
 <span class="sourceLineNo">063</span>  /** Retrieves length of the general queue for metrics. */<a name="line.63"></a>
 <span class="sourceLineNo">064</span>  public abstract int getGeneralQueueLength();<a name="line.64"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/39cf5e9b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html
index d49a145..e3c3a71 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html
@@ -66,7 +66,7 @@
 <span class="sourceLineNo">058</span>   *<a name="line.58"></a>
 <span class="sourceLineNo">059</span>   * @param task the request to be dispatched<a name="line.59"></a>
 <span class="sourceLineNo">060</span>   */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public abstract void dispatch(CallRunner task) throws IOException, InterruptedException;<a name="line.61"></a>
+<span class="sourceLineNo">061</span>  public abstract boolean dispatch(CallRunner task) throws IOException, InterruptedException;<a name="line.61"></a>
 <span class="sourceLineNo">062</span><a name="line.62"></a>
 <span class="sourceLineNo">063</span>  /** Retrieves length of the general queue for metrics. */<a name="line.63"></a>
 <span class="sourceLineNo">064</span>  public abstract int getGeneralQueueLength();<a name="line.64"></a>