You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2018/04/17 14:46:43 UTC
[01/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Repository: hbase-site
Updated Branches:
refs/heads/asf-site 5a9aefd52 -> a610f23a9
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html
index 4ac2a98..a1a3896 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html
@@ -160,30 +160,32 @@
<span class="sourceLineNo">152</span> public void testIsSameHdfs() throws IOException {<a name="line.152"></a>
<span class="sourceLineNo">153</span> String hadoopVersion = org.apache.hadoop.util.VersionInfo.getVersion();<a name="line.153"></a>
<span class="sourceLineNo">154</span> LOG.info("hadoop version is: " + hadoopVersion);<a name="line.154"></a>
-<span class="sourceLineNo">155</span> boolean isHadoop3 = hadoopVersion.startsWith("3.");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> if (isHadoop3) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> // Hadoop 3.0.0 alpha1+ change default nn port to 9820. See HDFS-9427<a name="line.157"></a>
-<span class="sourceLineNo">158</span> testIsSameHdfs(9820);<a name="line.158"></a>
-<span class="sourceLineNo">159</span> } else {<a name="line.159"></a>
-<span class="sourceLineNo">160</span> // pre hadoop 3.0.0 defaults to port 8020<a name="line.160"></a>
-<span class="sourceLineNo">161</span> testIsSameHdfs(8020);<a name="line.161"></a>
-<span class="sourceLineNo">162</span> }<a name="line.162"></a>
-<span class="sourceLineNo">163</span> }<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> /**<a name="line.165"></a>
-<span class="sourceLineNo">166</span> * Version of DFS that has HDFS-4525 in it.<a name="line.166"></a>
-<span class="sourceLineNo">167</span> */<a name="line.167"></a>
-<span class="sourceLineNo">168</span> static class IsFileClosedDistributedFileSystem extends DistributedFileSystem {<a name="line.168"></a>
-<span class="sourceLineNo">169</span> /**<a name="line.169"></a>
-<span class="sourceLineNo">170</span> * Close status of a file. Copied over from HDFS-4525<a name="line.170"></a>
-<span class="sourceLineNo">171</span> * @return true if file is already closed<a name="line.171"></a>
-<span class="sourceLineNo">172</span> **/<a name="line.172"></a>
-<span class="sourceLineNo">173</span> @Override<a name="line.173"></a>
-<span class="sourceLineNo">174</span> public boolean isFileClosed(Path f) throws IOException{<a name="line.174"></a>
-<span class="sourceLineNo">175</span> return false;<a name="line.175"></a>
-<span class="sourceLineNo">176</span> }<a name="line.176"></a>
-<span class="sourceLineNo">177</span> }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>}<a name="line.178"></a>
+<span class="sourceLineNo">155</span> boolean isHadoop3_0_0 = hadoopVersion.startsWith("3.0.0");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> if (isHadoop3_0_0) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span> // Hadoop 3.0.0 alpha1+ ~ 3.0.0 GA changed default nn port to 9820.<a name="line.157"></a>
+<span class="sourceLineNo">158</span> // See HDFS-9427<a name="line.158"></a>
+<span class="sourceLineNo">159</span> testIsSameHdfs(9820);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> } else {<a name="line.160"></a>
+<span class="sourceLineNo">161</span> // pre hadoop 3.0.0 defaults to port 8020<a name="line.161"></a>
+<span class="sourceLineNo">162</span> // Hadoop 3.0.1 changed it back to port 8020. See HDFS-12990<a name="line.162"></a>
+<span class="sourceLineNo">163</span> testIsSameHdfs(8020);<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><a name="line.166"></a>
+<span class="sourceLineNo">167</span> /**<a name="line.167"></a>
+<span class="sourceLineNo">168</span> * Version of DFS that has HDFS-4525 in it.<a name="line.168"></a>
+<span class="sourceLineNo">169</span> */<a name="line.169"></a>
+<span class="sourceLineNo">170</span> static class IsFileClosedDistributedFileSystem extends DistributedFileSystem {<a name="line.170"></a>
+<span class="sourceLineNo">171</span> /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span> * Close status of a file. Copied over from HDFS-4525<a name="line.172"></a>
+<span class="sourceLineNo">173</span> * @return true if file is already closed<a name="line.173"></a>
+<span class="sourceLineNo">174</span> **/<a name="line.174"></a>
+<span class="sourceLineNo">175</span> @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span> public boolean isFileClosed(Path f) throws IOException{<a name="line.176"></a>
+<span class="sourceLineNo">177</span> return false;<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span> }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>}<a name="line.180"></a>
[12/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
@@ -72,7 +72,7 @@
<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
<span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
<span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
<span class="sourceLineNo">069</span><a name="line.69"></a>
<span class="sourceLineNo">070</span> @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
<span class="sourceLineNo">078</span> @BeforeClass<a name="line.78"></a>
<span class="sourceLineNo">079</span> public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
<span class="sourceLineNo">080</span> TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span> admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span> public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span> // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span> public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> final List<RegionServerThread> rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span> for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span> }<a name="line.103"></a>
-<span class="sourceLineNo">104</span> // Wait for all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span> public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span> return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> }<a name="line.111"></a>
-<span class="sourceLineNo">112</span> }<a name="line.112"></a>
-<span class="sourceLineNo">113</span> return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span> public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.118"></a>
-<span class="sourceLineNo">119</span> for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span> // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span> }<a name="line.141"></a>
-<span class="sourceLineNo">142</span> });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span> @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span> public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span> });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span> // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span> public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span> int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span> admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span> if (admin.getPeersCount() <= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span> Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span> }<a name="line.183"></a>
-<span class="sourceLineNo">184</span> // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span> doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span> public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span> // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span> LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span> });<a name="line.196"></a>
-<span class="sourceLineNo">197</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<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> @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span> public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span> // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span> RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span> byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span> for (int i = 0; i < 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> if (row.length > 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span> Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span> }<a name="line.222"></a>
-<span class="sourceLineNo">223</span> }<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span> null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span> public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span> public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span> return failure;<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> admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span> utility1.deleteTableData(tableName);<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> @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span> //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span> // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span> doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span> public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span> });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span> //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span> //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span> "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<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> @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span> //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span> "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> }<a name="line.297"></a>
+<span class="sourceLineNo">081</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span> public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span> // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> final List<RegionServerThread> rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span> for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span> // Wait for all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span> public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span> for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span> return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> }<a name="line.110"></a>
+<span class="sourceLineNo">111</span> }<a name="line.111"></a>
+<span class="sourceLineNo">112</span> return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span> public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.117"></a>
+<span class="sourceLineNo">118</span> for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span> // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span> @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span> public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<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><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span> public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span> public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<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> doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin.removePeer("testCustomReplicationEndpoint");<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span> int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span> admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span> if (admin.getPeersCount() <= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> }<a name="line.182"></a>
+<span class="sourceLineNo">183</span> // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span> doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span> public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span> // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span> LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span> });<a name="line.195"></a>
+<span class="sourceLineNo">196</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span> }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span> @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span> public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span> final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span> // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span> RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span> byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span> for (int i = 0; i < 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> if (row.length > 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span> null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span> public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<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> @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span> public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span> }<a name="line.242"></a>
+<span class="sourceLineNo">243</span> });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span> utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span> @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span> //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span> doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span> public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span> });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span> //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<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> @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span> //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span> "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span> //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span> "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<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><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span> /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span> allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span> the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> */<a name="line.309"></a>
-<span class="sourceLineNo">310</span> String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span> long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span> String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span> String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span> String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span> long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span> source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span> source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span> source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span> source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span> source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span> source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span> source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span> source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span> verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span> verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span> verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> doPut(connection, row);<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><a name="line.363"></a>
-<span class="sourceLineNo">364</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span> Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span> }<a name="line.369"></a>
-<span class="sourceLineNo">370</span> }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span> private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span> static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> static volatile List<Entry> lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span> @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span> /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span> allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span> the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span> String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span> String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span> long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span> String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span> source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span> source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span> source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span> source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span> source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span> source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span> source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span> source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span> source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span> verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span> verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span> verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span> doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span> }<a name="line.360"></a>
+<span class="sourceLineNo">361</span> }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span> try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span> Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span> put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span> }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span> private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span> return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span> }<a name="line.374"></a>
+<span class="sourceLineNo">375</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span> Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span> static volatile List<Entry> lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span> public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> replicateCount.set(0);<a name="line.391"></a>
<span class="sourceLineNo">392</span> contructedCount.incrementAndGet();<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>
@@ -441,127 +441,131 @@
<span class="sourceLineNo">433</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
<span class="sourceLineNo">434</span> static boolean failedOnce;<a name="line.434"></a>
<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span> }<a name="line.441"></a>
-<span class="sourceLineNo">442</span> return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span> }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span> @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span> failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return new FailingDummyReplicator(entries, ordinal);<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> protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span> private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span> public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span> }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span> @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span> return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span> }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span> @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span> // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span> if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span> } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span> failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span> return new FailingDummyReplicator(entries, ordinal);<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><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span> @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span> public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> return ordinal;<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><a name="line.470"></a>
-<span class="sourceLineNo">471</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span> super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span> }<a name="line.475"></a>
+<span class="sourceLineNo">460</span> protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span> private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span> super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span> this.ordinal = ordinal;<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> @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span> public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span> return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span> }<a name="line.472"></a>
+<span class="sourceLineNo">473</span> }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span> public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span> }<a name="line.480"></a>
-<span class="sourceLineNo">481</span> }<a name="line.481"></a>
-<span class="sourceLineNo">482</span> }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span> static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span> @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span> try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span> // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span> doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span> } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span> return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span> }<a name="line.502"></a>
-<span class="sourceLineNo">503</span> }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span> super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span> }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span> @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span> public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span> @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span> // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span> doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span> return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span> }<a name="line.506"></a>
+<span class="sourceLineNo">507</span> }<a name="line.507"></a>
<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span> @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span> try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span> super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span> doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span> ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span> public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span> @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span> int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> for (int i = size-1; i >= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span> row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> cells.remove(i);<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> return entry;<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> }<a name="line.537"></a>
-<span class="sourceLineNo">538</span> }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span> @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span> public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span> return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span> public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span> return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span> @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span> try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span> doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span> } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span> ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span> return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span> }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span> @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span> public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span> @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (int i = size-1; i >= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span> row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span> cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span> }<a name="line.536"></a>
+<span class="sourceLineNo">537</span> }<a name="line.537"></a>
+<span class="sourceLineNo">538</span> return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> });<a name="line.540"></a>
+<span class="sourceLineNo">541</span> }<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> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span> @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span> public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> return entry;<a name="line.549"></a>
<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span> return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
<span class="sourceLineNo">555</span> }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
[23/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
index b2a29be..204dbcc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.456">TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator</a>
+<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.460">TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
</li>
</ul>
@@ -210,7 +210,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>ordinal</h4>
-<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.458">ordinal</a></pre>
+<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.462">ordinal</a></pre>
</li>
</ul>
</li>
@@ -227,7 +227,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>DummyReplicator</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.460">DummyReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.wal.WAL.Entry> entries,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.464">DummyReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.wal.WAL.Entry> entries,
int ordinal)</pre>
</li>
</ul>
@@ -245,7 +245,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>call</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.466">call</a>()
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.470">call</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
index e1c5b5e..af342f6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.471">TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator</a>
+<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.475">TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator</a>
extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator</a></pre>
</li>
</ul>
@@ -192,7 +192,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>FailingDummyReplicator</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html#line.473">FailingDummyReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.wal.WAL.Entry> entries,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html#line.477">FailingDummyReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.wal.WAL.Entry> entries,
int ordinal)</pre>
</li>
</ul>
@@ -210,7 +210,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>call</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html#line.478">call</a>()
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html#line.482">call</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
index 5d91f21..0f850d3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
@@ -353,7 +353,7 @@ extends org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplic
<ul class="blockListLast">
<li class="blockList">
<h4>InterClusterReplicationEndpointForTest</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.430">InterClusterReplicationEndpointForTest</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.436">InterClusterReplicationEndpointForTest</a>()</pre>
</li>
</ul>
</li>
@@ -370,7 +370,7 @@ extends org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplic
<ul class="blockList">
<li class="blockList">
<h4>replicate</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.437">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext replicateContext)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.441">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext replicateContext)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>replicate</code> in interface <code>org.apache.hadoop.hbase.replication.ReplicationEndpoint</code></dd>
@@ -385,7 +385,7 @@ extends org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplic
<ul class="blockListLast">
<li class="blockList">
<h4>createReplicator</h4>
-<pre>protected org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint.Replicator <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.446">createReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.wal.WAL.Entry> entries,
+<pre>protected org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint.Replicator <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.450">createReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.wal.WAL.Entry> entries,
int ordinal)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
index 4a28ccd..2a83467 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
@@ -131,7 +131,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.383">TestReplicationEndpoint.ReplicationEndpointForTest</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.382">TestReplicationEndpoint.ReplicationEndpointForTest</a>
extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
</li>
</ul>
@@ -309,7 +309,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>uuid</h4>
-<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.384">uuid</a></pre>
+<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.383">uuid</a></pre>
</li>
</ul>
<a name="contructedCount">
@@ -318,7 +318,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>contructedCount</h4>
-<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.385">contructedCount</a></pre>
+<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.384">contructedCount</a></pre>
</li>
</ul>
<a name="startedCount">
@@ -327,7 +327,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>startedCount</h4>
-<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.386">startedCount</a></pre>
+<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.385">startedCount</a></pre>
</li>
</ul>
<a name="stoppedCount">
@@ -336,7 +336,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>stoppedCount</h4>
-<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.387">stoppedCount</a></pre>
+<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.386">stoppedCount</a></pre>
</li>
</ul>
<a name="replicateCount">
@@ -345,7 +345,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>replicateCount</h4>
-<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.388">replicateCount</a></pre>
+<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.387">replicateCount</a></pre>
</li>
</ul>
<a name="lastEntries">
@@ -354,7 +354,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>lastEntries</h4>
-<pre>static volatile <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.wal.WAL.Entry> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.389">lastEntries</a></pre>
+<pre>static volatile <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.wal.WAL.Entry> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.388">lastEntries</a></pre>
</li>
</ul>
</li>
@@ -371,7 +371,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>ReplicationEndpointForTest</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.391">ReplicationEndpointForTest</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.390">ReplicationEndpointForTest</a>()</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
index d8825c6..ecd7961 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.484">TestReplicationEndpoint.ReplicationEndpointReturningFalse</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.488">TestReplicationEndpoint.ReplicationEndpointReturningFalse</a>
extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationEndpoint.ReplicationEndpointForTest</a></pre>
</li>
</ul>
@@ -292,7 +292,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>COUNT</h4>
-<pre>static int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.485">COUNT</a></pre>
+<pre>static int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.489">COUNT</a></pre>
</li>
</ul>
<a name="ex">
@@ -301,7 +301,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>ex</h4>
-<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.486">ex</a></pre>
+<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.490">ex</a></pre>
</li>
</ul>
<a name="replicated">
@@ -310,7 +310,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>replicated</h4>
-<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.487">replicated</a></pre>
+<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.491">replicated</a></pre>
</li>
</ul>
</li>
@@ -327,7 +327,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>ReplicationEndpointReturningFalse</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.484">ReplicationEndpointReturningFalse</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.488">ReplicationEndpointReturningFalse</a>()</pre>
</li>
</ul>
</li>
@@ -344,7 +344,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>replicate</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.489">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext replicateContext)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.493">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext replicateContext)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>replicate</code> in interface <code>org.apache.hadoop.hbase.replication.ReplicationEndpoint</code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
index ecd9601..f8b3f92 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.506">TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.510">TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter</a>
extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationEndpoint.ReplicationEndpointForTest</a></pre>
</li>
</ul>
@@ -288,7 +288,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>ex</h4>
-<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.507">ex</a></pre>
+<pre>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.511">ex</a></pre>
</li>
</ul>
</li>
@@ -305,7 +305,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>ReplicationEndpointWithWALEntryFilter</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.506">ReplicationEndpointWithWALEntryFilter</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.510">ReplicationEndpointWithWALEntryFilter</a>()</pre>
</li>
</ul>
</li>
@@ -322,7 +322,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>replicate</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.510">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext replicateContext)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.514">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext replicateContext)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>replicate</code> in interface <code>org.apache.hadoop.hbase.replication.ReplicationEndpoint</code></dd>
@@ -337,7 +337,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>getWALEntryfilter</h4>
-<pre>public org.apache.hadoop.hbase.replication.WALEntryFilter <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.521">getWALEntryfilter</a>()</pre>
+<pre>public org.apache.hadoop.hbase.replication.WALEntryFilter <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.525">getWALEntryfilter</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getWALEntryfilter</code> in interface <code>org.apache.hadoop.hbase.replication.ReplicationEndpoint</code></dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
index e84b67d..3626d5e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
@@ -196,7 +196,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -288,7 +288,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplicat
ion</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -383,7 +383,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>tearDownAfterClass</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.86">tearDownAfterClass</a>()
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.85">tearDownAfterClass</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -397,7 +397,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>setup</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.93">setup</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.92">setup</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -411,7 +411,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testCustomReplicationEndpoint</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.130">testCustomReplicationEndpoint</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.129">testCustomReplicationEndpoint</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -425,7 +425,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testReplicationEndpointReturnsFalseOnReplicate</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.169">testReplicationEndpointReturnsFalseOnReplicate</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.168">testReplicationEndpointReturnsFalseOnReplicate</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -439,7 +439,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testInterClusterReplication</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.205">testInterClusterReplication</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.204">testInterClusterReplication</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -453,7 +453,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testWALEntryFilterFromReplicationEndpoint</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.251">testWALEntryFilterFromReplicationEndpoint</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.250">testWALEntryFilterFromReplicationEndpoint</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -467,7 +467,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testWALEntryFilterAddValidation</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.280">testWALEntryFilterAddValidation</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.279">testWALEntryFilterAddValidation</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -481,7 +481,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testWALEntryFilterUpdateValidation</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.290">testWALEntryFilterUpdateValidation</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.289">testWALEntryFilterUpdateValidation</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -495,7 +495,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testMetricsSourceBaseSourcePassthrough</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.301">testMetricsSourceBaseSourcePassthrough</a>()</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.300">testMetricsSourceBaseSourcePassthrough</a>()</pre>
</li>
</ul>
<a name="doPut-byte:A-">
@@ -504,7 +504,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>doPut</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.358">doPut</a>(byte[] row)
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.357">doPut</a>(byte[] row)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -518,7 +518,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>doPut</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.364">doPut</a>(org.apache.hadoop.hbase.client.Connection connection,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.363">doPut</a>(org.apache.hadoop.hbase.client.Connection connection,
byte[] row)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -533,7 +533,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>doAssert</h4>
-<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.372">doAssert</a>(byte[] row)
+<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.371">doAssert</a>(byte[] row)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
index 0cbd130..2eda985 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.35">TestReplicationKillMasterRS</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.32">TestReplicationKillMasterRS</a>
extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></pre>
<div class="block">Runs the TestReplicationKillRS test and selects the RS to kill in the master cluster
Do not add other tests in this class.</div>
@@ -155,7 +155,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -205,7 +205,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -234,7 +234,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>CLASS_RULE</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.38">CLASS_RULE</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.35">CLASS_RULE</a></pre>
</li>
</ul>
</li>
@@ -251,7 +251,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>TestReplicationKillMasterRS</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.35">TestReplicationKillMasterRS</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.32">TestReplicationKillMasterRS</a>()</pre>
</li>
</ul>
</li>
@@ -268,7 +268,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>killOneMasterRS</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.42">killOneMasterRS</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.39">killOneMasterRS</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
index e27afae..22197d1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" target="_top">Frames</a></li>
@@ -160,7 +160,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -217,7 +217,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>
, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -317,7 +317,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" target="_top">Frames</a></li>
[18/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
index 19c72a2..f6a8245 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
@@ -104,213 +104,219 @@
<span class="sourceLineNo">096</span> admin1.modifyTable(tableName, table);<a name="line.96"></a>
<span class="sourceLineNo">097</span> admin1.enableTable(tableName);<a name="line.97"></a>
<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span> admin1.disableTableReplication(tableName);<a name="line.100"></a>
-<span class="sourceLineNo">101</span> table = admin1.getTableDescriptor(tableName);<a name="line.101"></a>
-<span class="sourceLineNo">102</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span> assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.103"></a>
-<span class="sourceLineNo">104</span> }<a name="line.104"></a>
-<span class="sourceLineNo">105</span> }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span> @Test<a name="line.107"></a>
-<span class="sourceLineNo">108</span> public void testEnableReplicationWhenSlaveClusterDoesntHaveTable() throws Exception {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> admin1.disableTableReplication(tableName);<a name="line.109"></a>
-<span class="sourceLineNo">110</span> admin2.disableTable(tableName);<a name="line.110"></a>
-<span class="sourceLineNo">111</span> admin2.deleteTable(tableName);<a name="line.111"></a>
-<span class="sourceLineNo">112</span> assertFalse(admin2.tableExists(tableName));<a name="line.112"></a>
-<span class="sourceLineNo">113</span> admin1.enableTableReplication(tableName);<a name="line.113"></a>
-<span class="sourceLineNo">114</span> assertTrue(admin2.tableExists(tableName));<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> @Test<a name="line.117"></a>
-<span class="sourceLineNo">118</span> public void testEnableReplicationWhenReplicationNotEnabled() throws Exception {<a name="line.118"></a>
-<span class="sourceLineNo">119</span> HTableDescriptor table = new HTableDescriptor(admin1.getTableDescriptor(tableName));<a name="line.119"></a>
-<span class="sourceLineNo">120</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> fam.setScope(HConstants.REPLICATION_SCOPE_LOCAL);<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> admin1.disableTable(tableName);<a name="line.123"></a>
-<span class="sourceLineNo">124</span> admin1.modifyTable(tableName, table);<a name="line.124"></a>
-<span class="sourceLineNo">125</span> admin1.enableTable(tableName);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> admin2.disableTable(tableName);<a name="line.127"></a>
-<span class="sourceLineNo">128</span> admin2.modifyTable(tableName, table);<a name="line.128"></a>
-<span class="sourceLineNo">129</span> admin2.enableTable(tableName);<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span> admin1.enableTableReplication(tableName);<a name="line.131"></a>
-<span class="sourceLineNo">132</span> table = admin1.getTableDescriptor(tableName);<a name="line.132"></a>
-<span class="sourceLineNo">133</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.134"></a>
-<span class="sourceLineNo">135</span> }<a name="line.135"></a>
-<span class="sourceLineNo">136</span> }<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Test<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public void testEnableReplicationWhenTableDescriptorIsNotSameInClusters() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> HTableDescriptor table = new HTableDescriptor(admin2.getTableDescriptor(tableName));<a name="line.140"></a>
-<span class="sourceLineNo">141</span> HColumnDescriptor f = new HColumnDescriptor("newFamily");<a name="line.141"></a>
-<span class="sourceLineNo">142</span> table.addFamily(f);<a name="line.142"></a>
-<span class="sourceLineNo">143</span> admin2.disableTable(tableName);<a name="line.143"></a>
-<span class="sourceLineNo">144</span> admin2.modifyTable(tableName, table);<a name="line.144"></a>
-<span class="sourceLineNo">145</span> admin2.enableTable(tableName);<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span> try {<a name="line.147"></a>
-<span class="sourceLineNo">148</span> admin1.enableTableReplication(tableName);<a name="line.148"></a>
-<span class="sourceLineNo">149</span> fail("Exception should be thrown if table descriptors in the clusters are not same.");<a name="line.149"></a>
-<span class="sourceLineNo">150</span> } catch (RuntimeException ignored) {<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> admin1.disableTable(tableName);<a name="line.153"></a>
-<span class="sourceLineNo">154</span> admin1.modifyTable(tableName, table);<a name="line.154"></a>
-<span class="sourceLineNo">155</span> admin1.enableTable(tableName);<a name="line.155"></a>
-<span class="sourceLineNo">156</span> admin1.enableTableReplication(tableName);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> table = admin1.getTableDescriptor(tableName);<a name="line.157"></a>
-<span class="sourceLineNo">158</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<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">099</span> admin1.disableTableReplication(tableName);<a name="line.99"></a>
+<span class="sourceLineNo">100</span> table = admin1.getTableDescriptor(tableName);<a name="line.100"></a>
+<span class="sourceLineNo">101</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span> assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.102"></a>
+<span class="sourceLineNo">103</span> }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span> admin1.deleteColumnFamily(table.getTableName(), f.getName());<a name="line.105"></a>
+<span class="sourceLineNo">106</span> }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span> @Test<a name="line.108"></a>
+<span class="sourceLineNo">109</span> public void testEnableReplicationWhenSlaveClusterDoesntHaveTable() throws Exception {<a name="line.109"></a>
+<span class="sourceLineNo">110</span> admin1.disableTableReplication(tableName);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> admin2.disableTable(tableName);<a name="line.111"></a>
+<span class="sourceLineNo">112</span> admin2.deleteTable(tableName);<a name="line.112"></a>
+<span class="sourceLineNo">113</span> assertFalse(admin2.tableExists(tableName));<a name="line.113"></a>
+<span class="sourceLineNo">114</span> admin1.enableTableReplication(tableName);<a name="line.114"></a>
+<span class="sourceLineNo">115</span> assertTrue(admin2.tableExists(tableName));<a name="line.115"></a>
+<span class="sourceLineNo">116</span> }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span> @Test<a name="line.118"></a>
+<span class="sourceLineNo">119</span> public void testEnableReplicationWhenReplicationNotEnabled() throws Exception {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> HTableDescriptor table = new HTableDescriptor(admin1.getTableDescriptor(tableName));<a name="line.120"></a>
+<span class="sourceLineNo">121</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span> fam.setScope(HConstants.REPLICATION_SCOPE_LOCAL);<a name="line.122"></a>
+<span class="sourceLineNo">123</span> }<a name="line.123"></a>
+<span class="sourceLineNo">124</span> admin1.disableTable(tableName);<a name="line.124"></a>
+<span class="sourceLineNo">125</span> admin1.modifyTable(tableName, table);<a name="line.125"></a>
+<span class="sourceLineNo">126</span> admin1.enableTable(tableName);<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> admin2.disableTable(tableName);<a name="line.128"></a>
+<span class="sourceLineNo">129</span> admin2.modifyTable(tableName, table);<a name="line.129"></a>
+<span class="sourceLineNo">130</span> admin2.enableTable(tableName);<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span> admin1.enableTableReplication(tableName);<a name="line.132"></a>
+<span class="sourceLineNo">133</span> table = admin1.getTableDescriptor(tableName);<a name="line.133"></a>
+<span class="sourceLineNo">134</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.135"></a>
+<span class="sourceLineNo">136</span> }<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span> @Test<a name="line.139"></a>
+<span class="sourceLineNo">140</span> public void testEnableReplicationWhenTableDescriptorIsNotSameInClusters() throws Exception {<a name="line.140"></a>
+<span class="sourceLineNo">141</span> HTableDescriptor table = new HTableDescriptor(admin2.getTableDescriptor(tableName));<a name="line.141"></a>
+<span class="sourceLineNo">142</span> HColumnDescriptor f = new HColumnDescriptor("newFamily");<a name="line.142"></a>
+<span class="sourceLineNo">143</span> table.addFamily(f);<a name="line.143"></a>
+<span class="sourceLineNo">144</span> admin2.disableTable(tableName);<a name="line.144"></a>
+<span class="sourceLineNo">145</span> admin2.modifyTable(tableName, table);<a name="line.145"></a>
+<span class="sourceLineNo">146</span> admin2.enableTable(tableName);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span> try {<a name="line.148"></a>
+<span class="sourceLineNo">149</span> admin1.enableTableReplication(tableName);<a name="line.149"></a>
+<span class="sourceLineNo">150</span> fail("Exception should be thrown if table descriptors in the clusters are not same.");<a name="line.150"></a>
+<span class="sourceLineNo">151</span> } catch (RuntimeException ignored) {<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> admin1.disableTable(tableName);<a name="line.154"></a>
+<span class="sourceLineNo">155</span> admin1.modifyTable(tableName, table);<a name="line.155"></a>
+<span class="sourceLineNo">156</span> admin1.enableTable(tableName);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> admin1.enableTableReplication(tableName);<a name="line.157"></a>
+<span class="sourceLineNo">158</span> table = admin1.getTableDescriptor(tableName);<a name="line.158"></a>
+<span class="sourceLineNo">159</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.160"></a>
+<span class="sourceLineNo">161</span> }<a name="line.161"></a>
<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> @Test<a name="line.163"></a>
-<span class="sourceLineNo">164</span> public void testDisableAndEnableReplication() throws Exception {<a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin1.disableTableReplication(tableName);<a name="line.165"></a>
-<span class="sourceLineNo">166</span> HTableDescriptor table = admin1.getTableDescriptor(tableName);<a name="line.166"></a>
-<span class="sourceLineNo">167</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.168"></a>
-<span class="sourceLineNo">169</span> }<a name="line.169"></a>
-<span class="sourceLineNo">170</span> admin1.enableTableReplication(tableName);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> table = admin1.getTableDescriptor(tableName);<a name="line.171"></a>
-<span class="sourceLineNo">172</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<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><a name="line.176"></a>
-<span class="sourceLineNo">177</span> @Test(expected = TableNotFoundException.class)<a name="line.177"></a>
-<span class="sourceLineNo">178</span> public void testDisableReplicationForNonExistingTable() throws Exception {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> admin1.disableTableReplication(TableName.valueOf(name.getMethodName()));<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> @Test(expected = TableNotFoundException.class)<a name="line.182"></a>
-<span class="sourceLineNo">183</span> public void testEnableReplicationForNonExistingTable() throws Exception {<a name="line.183"></a>
-<span class="sourceLineNo">184</span> admin1.enableTableReplication(TableName.valueOf(name.getMethodName()));<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> @Test(expected = IllegalArgumentException.class)<a name="line.187"></a>
-<span class="sourceLineNo">188</span> public void testDisableReplicationWhenTableNameAsNull() throws Exception {<a name="line.188"></a>
-<span class="sourceLineNo">189</span> admin1.disableTableReplication(null);<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span> @Test(expected = IllegalArgumentException.class)<a name="line.192"></a>
-<span class="sourceLineNo">193</span> public void testEnableReplicationWhenTableNameAsNull() throws Exception {<a name="line.193"></a>
-<span class="sourceLineNo">194</span> admin1.enableTableReplication(null);<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span> /*<a name="line.197"></a>
-<span class="sourceLineNo">198</span> * Test enable table replication should create table only in user explicit specified table-cfs.<a name="line.198"></a>
-<span class="sourceLineNo">199</span> * HBASE-14717<a name="line.199"></a>
-<span class="sourceLineNo">200</span> */<a name="line.200"></a>
-<span class="sourceLineNo">201</span> @Test<a name="line.201"></a>
-<span class="sourceLineNo">202</span> public void testEnableReplicationForExplicitSetTableCfs() throws Exception {<a name="line.202"></a>
-<span class="sourceLineNo">203</span> final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.203"></a>
-<span class="sourceLineNo">204</span> String peerId = "2";<a name="line.204"></a>
-<span class="sourceLineNo">205</span> if (admin2.isTableAvailable(TestReplicationBase.tableName)) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> admin2.disableTable(TestReplicationBase.tableName);<a name="line.206"></a>
-<span class="sourceLineNo">207</span> admin2.deleteTable(TestReplicationBase.tableName);<a name="line.207"></a>
-<span class="sourceLineNo">208</span> }<a name="line.208"></a>
-<span class="sourceLineNo">209</span> assertFalse("Table should not exists in the peer cluster",<a name="line.209"></a>
-<span class="sourceLineNo">210</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span> // update peer config<a name="line.212"></a>
-<span class="sourceLineNo">213</span> ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> rpc.setReplicateAllUserTables(false);<a name="line.214"></a>
-<span class="sourceLineNo">215</span> admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> Map<TableName, ? extends Collection<String>> tableCfs = new HashMap<>();<a name="line.217"></a>
-<span class="sourceLineNo">218</span> tableCfs.put(tableName, null);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> try {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> assertFalse("Table should not be created if user has set table cfs explicitly for the "<a name="line.222"></a>
-<span class="sourceLineNo">223</span> + "peer and this is not part of that collection",<a name="line.223"></a>
-<span class="sourceLineNo">224</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> tableCfs.put(TestReplicationBase.tableName, null);<a name="line.226"></a>
-<span class="sourceLineNo">227</span> adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.227"></a>
-<span class="sourceLineNo">228</span> admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.228"></a>
-<span class="sourceLineNo">229</span> assertTrue(<a name="line.229"></a>
-<span class="sourceLineNo">230</span> "Table should be created if user has explicitly added table into table cfs collection",<a name="line.230"></a>
-<span class="sourceLineNo">231</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.231"></a>
-<span class="sourceLineNo">232</span> } finally {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> adminExt.removePeerTableCFs(peerId, adminExt.getPeerTableCFs(peerId));<a name="line.233"></a>
-<span class="sourceLineNo">234</span> admin1.disableTableReplication(TestReplicationBase.tableName);<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.236"></a>
-<span class="sourceLineNo">237</span> rpc.setReplicateAllUserTables(true);<a name="line.237"></a>
-<span class="sourceLineNo">238</span> admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.238"></a>
-<span class="sourceLineNo">239</span> }<a name="line.239"></a>
-<span class="sourceLineNo">240</span> }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span> @Test<a name="line.242"></a>
-<span class="sourceLineNo">243</span> public void testReplicationPeerConfigUpdateCallback() throws Exception {<a name="line.243"></a>
-<span class="sourceLineNo">244</span> String peerId = "1";<a name="line.244"></a>
-<span class="sourceLineNo">245</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.245"></a>
-<span class="sourceLineNo">246</span> rpc.setClusterKey(utility2.getClusterKey());<a name="line.246"></a>
-<span class="sourceLineNo">247</span> rpc.setReplicationEndpointImpl(TestUpdatableReplicationEndpoint.class.getName());<a name="line.247"></a>
-<span class="sourceLineNo">248</span> rpc.getConfiguration().put("key1", "value1");<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span> admin1.addReplicationPeer(peerId, rpc);<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span> rpc.getConfiguration().put("key1", "value2");<a name="line.252"></a>
-<span class="sourceLineNo">253</span> admin.updatePeerConfig(peerId, rpc);<a name="line.253"></a>
-<span class="sourceLineNo">254</span> if (!TestUpdatableReplicationEndpoint.hasCalledBack()) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span> synchronized(TestUpdatableReplicationEndpoint.class) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span> TestUpdatableReplicationEndpoint.class.wait(2000L);<a name="line.256"></a>
-<span class="sourceLineNo">257</span> }<a name="line.257"></a>
-<span class="sourceLineNo">258</span> }<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span> assertEquals(true, TestUpdatableReplicationEndpoint.hasCalledBack());<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 static class TestUpdatableReplicationEndpoint extends BaseReplicationEndpoint {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> private static boolean calledBack = false;<a name="line.264"></a>
-<span class="sourceLineNo">265</span> public static boolean hasCalledBack(){<a name="line.265"></a>
-<span class="sourceLineNo">266</span> return calledBack;<a name="line.266"></a>
-<span class="sourceLineNo">267</span> }<a name="line.267"></a>
-<span class="sourceLineNo">268</span> @Override<a name="line.268"></a>
-<span class="sourceLineNo">269</span> public synchronized void peerConfigUpdated(ReplicationPeerConfig rpc){<a name="line.269"></a>
-<span class="sourceLineNo">270</span> calledBack = true;<a name="line.270"></a>
-<span class="sourceLineNo">271</span> notifyAll();<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">163</span> admin1.deleteColumnFamily(tableName, f.getName());<a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin2.deleteColumnFamily(tableName, f.getName());<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testDisableAndEnableReplication() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> admin1.disableTableReplication(tableName);<a name="line.169"></a>
+<span class="sourceLineNo">170</span> HTableDescriptor table = admin1.getTableDescriptor(tableName);<a name="line.170"></a>
+<span class="sourceLineNo">171</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span> assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.172"></a>
+<span class="sourceLineNo">173</span> }<a name="line.173"></a>
+<span class="sourceLineNo">174</span> admin1.enableTableReplication(tableName);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> table = admin1.getTableDescriptor(tableName);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span> }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span> @Test(expected = TableNotFoundException.class)<a name="line.181"></a>
+<span class="sourceLineNo">182</span> public void testDisableReplicationForNonExistingTable() throws Exception {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> admin1.disableTableReplication(TableName.valueOf(name.getMethodName()));<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> @Test(expected = TableNotFoundException.class)<a name="line.186"></a>
+<span class="sourceLineNo">187</span> public void testEnableReplicationForNonExistingTable() throws Exception {<a name="line.187"></a>
+<span class="sourceLineNo">188</span> admin1.enableTableReplication(TableName.valueOf(name.getMethodName()));<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> @Test(expected = IllegalArgumentException.class)<a name="line.191"></a>
+<span class="sourceLineNo">192</span> public void testDisableReplicationWhenTableNameAsNull() throws Exception {<a name="line.192"></a>
+<span class="sourceLineNo">193</span> admin1.disableTableReplication(null);<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span> @Test(expected = IllegalArgumentException.class)<a name="line.196"></a>
+<span class="sourceLineNo">197</span> public void testEnableReplicationWhenTableNameAsNull() throws Exception {<a name="line.197"></a>
+<span class="sourceLineNo">198</span> admin1.enableTableReplication(null);<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> * Test enable table replication should create table only in user explicit specified table-cfs.<a name="line.202"></a>
+<span class="sourceLineNo">203</span> * HBASE-14717<a name="line.203"></a>
+<span class="sourceLineNo">204</span> */<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Test<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public void testEnableReplicationForExplicitSetTableCfs() throws Exception {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.207"></a>
+<span class="sourceLineNo">208</span> String peerId = "2";<a name="line.208"></a>
+<span class="sourceLineNo">209</span> if (admin2.isTableAvailable(TestReplicationBase.tableName)) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> admin2.disableTable(TestReplicationBase.tableName);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> admin2.deleteTable(TestReplicationBase.tableName);<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span> assertFalse("Table should not exists in the peer cluster",<a name="line.213"></a>
+<span class="sourceLineNo">214</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span> // update peer config<a name="line.216"></a>
+<span class="sourceLineNo">217</span> ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> rpc.setReplicateAllUserTables(false);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span> Map<TableName, ? extends Collection<String>> tableCfs = new HashMap<>();<a name="line.221"></a>
+<span class="sourceLineNo">222</span> tableCfs.put(tableName, null);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> try {<a name="line.223"></a>
+<span class="sourceLineNo">224</span> adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.225"></a>
+<span class="sourceLineNo">226</span> assertFalse("Table should not be created if user has set table cfs explicitly for the "<a name="line.226"></a>
+<span class="sourceLineNo">227</span> + "peer and this is not part of that collection",<a name="line.227"></a>
+<span class="sourceLineNo">228</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> tableCfs.put(TestReplicationBase.tableName, null);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.231"></a>
+<span class="sourceLineNo">232</span> admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> assertTrue(<a name="line.233"></a>
+<span class="sourceLineNo">234</span> "Table should be created if user has explicitly added table into table cfs collection",<a name="line.234"></a>
+<span class="sourceLineNo">235</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.235"></a>
+<span class="sourceLineNo">236</span> } finally {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> adminExt.removePeerTableCFs(peerId, adminExt.getPeerTableCFs(peerId));<a name="line.237"></a>
+<span class="sourceLineNo">238</span> admin1.disableTableReplication(TestReplicationBase.tableName);<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span> rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.240"></a>
+<span class="sourceLineNo">241</span> rpc.setReplicateAllUserTables(true);<a name="line.241"></a>
+<span class="sourceLineNo">242</span> admin1.updateReplicationPeerConfig(peerId, rpc);<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> @Test<a name="line.246"></a>
+<span class="sourceLineNo">247</span> public void testReplicationPeerConfigUpdateCallback() throws Exception {<a name="line.247"></a>
+<span class="sourceLineNo">248</span> String peerId = "1";<a name="line.248"></a>
+<span class="sourceLineNo">249</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.249"></a>
+<span class="sourceLineNo">250</span> rpc.setClusterKey(utility2.getClusterKey());<a name="line.250"></a>
+<span class="sourceLineNo">251</span> rpc.setReplicationEndpointImpl(TestUpdatableReplicationEndpoint.class.getName());<a name="line.251"></a>
+<span class="sourceLineNo">252</span> rpc.getConfiguration().put("key1", "value1");<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span> admin1.addReplicationPeer(peerId, rpc);<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span> rpc.getConfiguration().put("key1", "value2");<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.updatePeerConfig(peerId, rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> if (!TestUpdatableReplicationEndpoint.hasCalledBack()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span> synchronized (TestUpdatableReplicationEndpoint.class) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> TestUpdatableReplicationEndpoint.class.wait(2000L);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> }<a name="line.261"></a>
+<span class="sourceLineNo">262</span> }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span> assertEquals(true, TestUpdatableReplicationEndpoint.hasCalledBack());<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span> admin.removePeer(peerId);<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> public static class TestUpdatableReplicationEndpoint extends BaseReplicationEndpoint {<a name="line.269"></a>
+<span class="sourceLineNo">270</span> private static boolean calledBack = false;<a name="line.270"></a>
+<span class="sourceLineNo">271</span> public static boolean hasCalledBack(){<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return calledBack;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> }<a name="line.273"></a>
<span class="sourceLineNo">274</span> @Override<a name="line.274"></a>
-<span class="sourceLineNo">275</span> public void start() {<a name="line.275"></a>
-<span class="sourceLineNo">276</span> startAsync();<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Override<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void stop() {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> stopAsync();<a name="line.281"></a>
-<span class="sourceLineNo">282</span> }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span> @Override<a name="line.284"></a>
-<span class="sourceLineNo">285</span> protected void doStart() {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> notifyStarted();<a name="line.286"></a>
-<span class="sourceLineNo">287</span> }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span> @Override<a name="line.289"></a>
-<span class="sourceLineNo">290</span> protected void doStop() {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> notifyStopped();<a name="line.291"></a>
-<span class="sourceLineNo">292</span> }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">275</span> public synchronized void peerConfigUpdated(ReplicationPeerConfig rpc){<a name="line.275"></a>
+<span class="sourceLineNo">276</span> calledBack = true;<a name="line.276"></a>
+<span class="sourceLineNo">277</span> notifyAll();<a name="line.277"></a>
+<span class="sourceLineNo">278</span> }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span> @Override<a name="line.280"></a>
+<span class="sourceLineNo">281</span> public void start() {<a name="line.281"></a>
+<span class="sourceLineNo">282</span> startAsync();<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span> public void stop() {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> stopAsync();<a name="line.287"></a>
+<span class="sourceLineNo">288</span> }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
+<span class="sourceLineNo">291</span> protected void doStart() {<a name="line.291"></a>
+<span class="sourceLineNo">292</span> notifyStarted();<a name="line.292"></a>
+<span class="sourceLineNo">293</span> }<a name="line.293"></a>
<span class="sourceLineNo">294</span><a name="line.294"></a>
<span class="sourceLineNo">295</span> @Override<a name="line.295"></a>
-<span class="sourceLineNo">296</span> public UUID getPeerUUID() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> return UUID.randomUUID();<a name="line.297"></a>
+<span class="sourceLineNo">296</span> protected void doStop() {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> notifyStopped();<a name="line.297"></a>
<span class="sourceLineNo">298</span> }<a name="line.298"></a>
<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Override<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span> return false;<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>}<a name="line.305"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span> @Override<a name="line.301"></a>
+<span class="sourceLineNo">302</span> public UUID getPeerUUID() {<a name="line.302"></a>
+<span class="sourceLineNo">303</span> return UUID.randomUUID();<a name="line.303"></a>
+<span class="sourceLineNo">304</span> }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span> @Override<a name="line.306"></a>
+<span class="sourceLineNo">307</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span> return false;<a name="line.308"></a>
+<span class="sourceLineNo">309</span> }<a name="line.309"></a>
+<span class="sourceLineNo">310</span> }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>}<a name="line.311"></a>
[20/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillRS.html b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillRS.html
index 08e5360..c254da7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillRS.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillRS.html
@@ -122,11 +122,19 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></span></code>
<div class="block">Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster
Do not add other tests in this class.</div>
</td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></span></code> </td>
+</tr>
</tbody>
</table>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..9a4fd82
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">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/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillSlaveRSWithSeparateOldWALs.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.replication.TestReplicationKillSlaveRSWithSeparateOldWALs" class="title">Uses of Class<br>org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">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/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillSlaveRSWithSeparateOldWALs.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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleAsyncWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleAsyncWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleAsyncWAL.html
index da9a73a..13a7e7c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleAsyncWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleAsyncWAL.html
@@ -164,7 +164,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -214,7 +214,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-i
nt-int-">waitForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleWAL.html
index 65e1dcc..01a2980 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleWAL.html
@@ -164,7 +164,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -214,7 +214,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-i
nt-int-">waitForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html
index 60abd4c..2b8827b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html
@@ -159,7 +159,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -216,7 +216,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDown
Base--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html
index 24b10fc..864fbe3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html
@@ -159,7 +159,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -216,7 +216,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDown
Base--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleAsyncWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleAsyncWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleAsyncWAL.html
index e47ce7d..70d118d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleAsyncWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleAsyncWAL.html
@@ -156,7 +156,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_
ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apa
che/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_
ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hba
se/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -199,14 +199,14 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSyncUpTool</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#testSyncUpTool--">testSyncUpTool</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#testSyncUpTool--">testSyncUpTool</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForR
eplication-int-int-">waitForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleWAL.html
index 0f33e8c..0a6ad41 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleWAL.html
@@ -156,7 +156,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_
ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apa
che/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_
ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hba
se/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -199,14 +199,14 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSyncUpTool</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#testSyncUpTool--">testSyncUpTool</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#testSyncUpTool--">testSyncUpTool</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForR
eplication-int-int-">waitForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/replication/package-frame.html
index 08b5e4f..58971c6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/package-frame.html
@@ -37,8 +37,10 @@
<li><a href="TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter</a></li>
<li><a href="TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillMasterRS</a></li>
<li><a href="TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillMasterRSCompressed</a></li>
+<li><a href="TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillMasterRSWithSeparateOldWALs</a></li>
<li><a href="TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillRS</a></li>
<li><a href="TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillSlaveRS</a></li>
+<li><a href="TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillSlaveRSWithSeparateOldWALs</a></li>
<li><a href="TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationPeerConfig</a></li>
<li><a href="TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationProcedureRetry</a></li>
<li><a href="TestReplicationProcedureRetry.MockHMaster.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationProcedureRetry.MockHMaster</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/replication/package-summary.html
index 162abbe..26fa8a8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/package-summary.html
@@ -201,16 +201,24 @@
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></td>
<td class="colLast"> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></td>
<td class="colLast">
<div class="block">Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster
Do not add other tests in this class.</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></td>
+<td class="colLast"> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationPeerConfig</a></td>
<td class="colLast"> </td>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/replication/package-tree.html
index efc7c02..01a466b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/package-tree.html
@@ -147,7 +147,9 @@
<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillMasterRSCompressed</span></a></li>
</ul>
</li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillMasterRSWithSeparateOldWALs</span></a></li>
<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillSlaveRS</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillSlaveRSWithSeparateOldWALs</span></a></li>
</ul>
</li>
<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationSmallTests</span></a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicator.html b/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicator.html
index cc92c34..d81f347 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicator.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicator.html
@@ -175,7 +175,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -235,7 +235,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-i
nt-int-">waitForReplication</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/a610f23a/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 ca2f60e..a57fd99 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -254,9 +254,9 @@
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html b/testdevapidocs/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
index 8e71381..298c764 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html#line.168">TestFSHDFSUtils.IsFileClosedDistributedFileSystem</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html#line.170">TestFSHDFSUtils.IsFileClosedDistributedFileSystem</a>
extends org.apache.hadoop.hdfs.DistributedFileSystem</pre>
<div class="block">Version of DFS that has HDFS-4525 in it.</div>
</li>
@@ -262,7 +262,7 @@ extends org.apache.hadoop.hdfs.DistributedFileSystem</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>IsFileClosedDistributedFileSystem</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html#line.168">IsFileClosedDistributedFileSystem</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html#line.170">IsFileClosedDistributedFileSystem</a>()</pre>
</li>
</ul>
</li>
@@ -279,7 +279,7 @@ extends org.apache.hadoop.hdfs.DistributedFileSystem</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>isFileClosed</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html#line.174">isFileClosed</a>(org.apache.hadoop.fs.Path f)
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html#line.176">isFileClosed</a>(org.apache.hadoop.fs.Path f)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Close status of a file. Copied over from HDFS-4525</div>
<dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index f0750c4..61e467e 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -3234,7 +3234,9 @@
</li>
</ul>
</li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillMasterRSWithSeparateOldWALs</span></a></li>
<li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillSlaveRS</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillSlaveRSWithSeparateOldWALs</span></a></li>
</ul>
</li>
<li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationSmallTests</span></a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/serialized-form.html b/testdevapidocs/serialized-form.html
index bbfe602..0c85490 100644
--- a/testdevapidocs/serialized-form.html
+++ b/testdevapidocs/serialized-form.html
@@ -1405,6 +1405,26 @@
</a>
<h3>Class org.apache.hadoop.hbase.quotas.QuotaExceededException extends org.apache.hadoop.hbase.DoNotRetryIOException implements Serializable</h3>
</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas.RpcThrottlingException">
+<!-- -->
+</a>
+<h3>Class org.apache.hadoop.hbase.quotas.RpcThrottlingException extends org.apache.hadoop.hbase.HBaseIOException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitInterval</h4>
+<pre>long waitInterval</pre>
+</li>
+<li class="blockListLast">
+<h4>type</h4>
+<pre>org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type type</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
<li class="blockList"><a name="org.apache.hadoop.hbase.quotas.SpaceLimitingException">
<!-- -->
</a>
@@ -1440,10 +1460,12 @@
<li class="blockList">
<h4>waitInterval</h4>
<pre>long waitInterval</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
<li class="blockListLast">
<h4>type</h4>
<pre>org.apache.hadoop.hbase.quotas.ThrottlingException.Type type</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html
@@ -39,7 +39,7 @@
<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
<span class="sourceLineNo">193</span><a name="line.193"></a>
<span class="sourceLineNo">194</span> public static List<Throwable> metaCachePreservingExceptions() {<a name="line.194"></a>
<span class="sourceLineNo">195</span> return new ArrayList<Throwable>() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span> add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span> add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<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>
[29/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html b/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
index 947b310..d989167 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Public
-public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.38">ThrottlingException.Type</a>
+public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.41">ThrottlingException.Type</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>></pre>
</li>
</ul>
@@ -223,7 +223,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>NumRequestsExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.39">NumRequestsExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.42">NumRequestsExceeded</a></pre>
</li>
</ul>
<a name="RequestSizeExceeded">
@@ -232,7 +232,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>RequestSizeExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.40">RequestSizeExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.43">RequestSizeExceeded</a></pre>
</li>
</ul>
<a name="NumReadRequestsExceeded">
@@ -241,7 +241,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>NumReadRequestsExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">NumReadRequestsExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.44">NumReadRequestsExceeded</a></pre>
</li>
</ul>
<a name="NumWriteRequestsExceeded">
@@ -250,7 +250,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>NumWriteRequestsExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.42">NumWriteRequestsExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.45">NumWriteRequestsExceeded</a></pre>
</li>
</ul>
<a name="WriteSizeExceeded">
@@ -259,7 +259,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>WriteSizeExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.43">WriteSizeExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.46">WriteSizeExceeded</a></pre>
</li>
</ul>
<a name="ReadSizeExceeded">
@@ -268,7 +268,7 @@ the order they are declared.</div>
<ul class="blockListLast">
<li class="blockList">
<h4>ReadSizeExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.44">ReadSizeExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.47">ReadSizeExceeded</a></pre>
</li>
</ul>
</li>
@@ -285,7 +285,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.38">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">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:
@@ -305,7 +305,7 @@ for (ThrottlingException.Type c : ThrottlingException.Type.values())
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.38">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> 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/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html b/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
index bf4003b..6116a49 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
@@ -18,8 +18,8 @@
catch(err) {
}
//-->
-var methods = {"i0":9,"i1":10,"i2":10,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":41,"i1":42,"i2":42,"i3":41,"i4":41,"i5":41,"i6":41,"i7":41,"i8":41,"i9":41,"i10":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
@@ -142,9 +142,13 @@ var activeTableTab = "activeTableTab";
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
</dl>
<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
<br>
-<pre>@InterfaceAudience.Public
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.34">ThrottlingException</a>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+ @InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.37">ThrottlingException</a>
extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas">QuotaExceededException</a></pre>
<div class="block">Describe the throttling result.
@@ -175,7 +179,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</table>
</li>
@@ -194,23 +200,33 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_TYPE">MSG_TYPE</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_TYPE">MSG_TYPE</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_WAIT">MSG_WAIT</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_WAIT">MSG_WAIT</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#serialVersionUID">serialVersionUID</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#serialVersionUID">serialVersionUID</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#waitInterval">waitInterval</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#waitInterval">waitInterval</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</table>
</li>
@@ -227,12 +243,16 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
long waitInterval,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</table>
</li>
@@ -244,55 +264,77 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd"> </span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime</a></span>(long timeDiff)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime</a></span>(long timeDiff)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
- long waitInterval)</code> </td>
+ long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>private static long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#timeFromString-java.lang.String-">timeFromString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> timeDiff)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#timeFromString-java.lang.String-">timeFromString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> timeDiff)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</table>
<ul class="blockList">
@@ -329,7 +371,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>serialVersionUID</h4>
-<pre>private static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.35">serialVersionUID</a></pre>
+<pre>private static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.38">serialVersionUID</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.quotas.ThrottlingException.serialVersionUID">Constant Field Values</a></dd>
@@ -342,7 +385,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>MSG_TYPE</h4>
-<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.47">MSG_TYPE</a></pre>
+<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.50">MSG_TYPE</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
<a name="MSG_WAIT">
@@ -351,7 +395,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>MSG_WAIT</h4>
-<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.56">MSG_WAIT</a></pre>
+<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.59">MSG_WAIT</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.quotas.ThrottlingException.MSG_WAIT">Constant Field Values</a></dd>
@@ -364,7 +409,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>waitInterval</h4>
-<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.58">waitInterval</a></pre>
+<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.61">waitInterval</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
<a name="type">
@@ -373,7 +419,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockListLast">
<li class="blockList">
<h4>type</h4>
-<pre>private <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.59">type</a></pre>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.62">type</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
</li>
@@ -390,7 +437,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>ThrottlingException</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.61">ThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.64">ThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
<a name="ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">
@@ -399,9 +447,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockListLast">
<li class="blockList">
<h4>ThrottlingException</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.77">ThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.80">ThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
long waitInterval,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
</li>
@@ -418,7 +467,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>getType</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.83">getType</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.86">getType</a>()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
<a name="getWaitInterval--">
@@ -427,7 +477,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>getWaitInterval</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.87">getWaitInterval</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.90">getWaitInterval</a>()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
<a name="throwNumRequestsExceeded-long-">
@@ -436,8 +487,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwNumRequestsExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.91">throwNumRequestsExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.94">throwNumRequestsExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -450,8 +502,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwRequestSizeExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.96">throwRequestSizeExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.99">throwRequestSizeExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -464,8 +517,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwNumReadRequestsExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.101">throwNumReadRequestsExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.104">throwNumReadRequestsExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -478,8 +532,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwNumWriteRequestsExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.106">throwNumWriteRequestsExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.109">throwNumWriteRequestsExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -492,8 +547,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwWriteSizeExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.111">throwWriteSizeExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.114">throwWriteSizeExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -506,8 +562,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwReadSizeExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.116">throwReadSizeExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.119">throwReadSizeExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -520,9 +577,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwThrottlingException</h4>
-<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.121">throwThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
+<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.124">throwThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -535,7 +593,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>formatTime</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.127">formatTime</a>(long timeDiff)</pre>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.130">formatTime</a>(long timeDiff)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
<a name="timeFromString-java.lang.String-">
@@ -544,7 +603,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockListLast">
<li class="blockList">
<h4>timeFromString</h4>
-<pre>private static long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.147">timeFromString</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> timeDiff)</pre>
+<pre>private static long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.150">timeFromString</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> timeDiff)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html b/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
index 7a8f652..9845708 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
@@ -400,7 +400,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
<h4>checkQuota</h4>
<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.113">checkQuota</a>(long writeSize,
long readSize)
- throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">QuotaLimiter</a></code></span></div>
<div class="block">Checks if it is possible to execute the specified operation.</div>
<dl>
@@ -410,7 +410,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
<dd><code>writeSize</code> - the write size that will be checked against the available quota</dd>
<dd><code>readSize</code> - the read size that will be checked against the available quota</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
</dl>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
index cd1b837..e2b4686 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
@@ -111,7 +111,9 @@
<tr class="rowColor">
<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
</td>
</tr>
</tbody>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..1e34500
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">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/quotas/class-use/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.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.quotas.RpcThrottlingException.Type" class="title">Uses of Class<br>org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd"> </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.quotas">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colLast"> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#type">type</a></span></code> </td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> that return <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType</a></span>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type,
+ long waitInterval)</code> </td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type,
+ long waitInterval,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">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/quotas/class-use/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
new file mode 100644
index 0000000..f7bd99d
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">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/quotas/class-use/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.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.quotas.RpcThrottlingException" class="title">Uses of Class<br>org.apache.hadoop.hbase.quotas.RpcThrottlingException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span><span class="tabEnd"> </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.quotas">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colLast"> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a> in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> that throw <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DefaultOperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int numWrites,
+ int numReads,
+ int numScans)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">OperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int numWrites,
+ int numReads,
+ int numScans)</code>
+<div class="block">Checks if it is possible to execute the specified operation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">NoopOperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/NoopOperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int numWrites,
+ int numReads,
+ int numScans)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">TimeBasedLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long writeSize,
+ long readSize)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">QuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long estimateWriteSize,
+ long estimateReadSize)</code>
+<div class="block">Checks if it is possible to execute the specified operation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">NoopQuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long estimateWriteSize,
+ long estimateReadSize)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-int-int-int-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a> region,
+ int numWrites,
+ int numReads,
+ int numScans)</code>
+<div class="block">Check the quota for the current (rpc-context) user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-java.util.List-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a> region,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action> actions)</code>
+<div class="block">Check the quota for the current (rpc-context) user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-org.apache.hadoop.hbase.quotas.OperationQuota.OperationType-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a> region,
+ <a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas">OperationQuota.OperationType</a> type)</code>
+<div class="block">Check the quota for the current (rpc-context) user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type,
+ long waitInterval)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">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/quotas/class-use/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
index ee27494..2f190d1 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
@@ -104,7 +104,9 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</tbody>
</table>
@@ -117,7 +119,9 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
@@ -144,7 +148,9 @@ the order they are declared.</div>
<tr class="altColor">
<td class="colFirst"><code>private static void</code></td>
<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
- long waitInterval)</code> </td>
+ long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</tbody>
</table>
@@ -157,7 +163,9 @@ the order they are declared.</div>
<tr class="altColor">
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
long waitInterval,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</tbody>
</table>
[14/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
index 3cead14..f01b6d1 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
@@ -127,178 +127,184 @@
<span class="sourceLineNo">119</span> admin2.createNamespace(NamespaceDescriptor.create("NS").build());<a name="line.119"></a>
<span class="sourceLineNo">120</span> }<a name="line.120"></a>
<span class="sourceLineNo">121</span> testEditsBehindDroppedTable(true, "NS:test_dropped");<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span> private void testEditsBehindDroppedTable(boolean allowProceeding, String tName) throws Exception {<a name="line.124"></a>
-<span class="sourceLineNo">125</span> conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, allowProceeding);<a name="line.125"></a>
-<span class="sourceLineNo">126</span> conf1.setInt(HConstants.REPLICATION_SOURCE_MAXTHREADS_KEY, 1);<a name="line.126"></a>
-<span class="sourceLineNo">127</span><a name="line.127"></a>
-<span class="sourceLineNo">128</span> // make sure we have a single region server only, so that all<a name="line.128"></a>
-<span class="sourceLineNo">129</span> // edits for all tables go there<a name="line.129"></a>
-<span class="sourceLineNo">130</span> utility1.shutdownMiniHBaseCluster();<a name="line.130"></a>
-<span class="sourceLineNo">131</span> utility1.startMiniHBaseCluster(1, 1);<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span> TableName tablename = TableName.valueOf(tName);<a name="line.133"></a>
-<span class="sourceLineNo">134</span> byte[] familyname = Bytes.toBytes("fam");<a name="line.134"></a>
-<span class="sourceLineNo">135</span> byte[] row = Bytes.toBytes("row");<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span> HTableDescriptor table = new HTableDescriptor(tablename);<a name="line.137"></a>
-<span class="sourceLineNo">138</span> HColumnDescriptor fam = new HColumnDescriptor(familyname);<a name="line.138"></a>
-<span class="sourceLineNo">139</span> fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> table.addFamily(fam);<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.142"></a>
-<span class="sourceLineNo">143</span> Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.143"></a>
-<span class="sourceLineNo">144</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span> admin1.createTable(table);<a name="line.145"></a>
-<span class="sourceLineNo">146</span> }<a name="line.146"></a>
-<span class="sourceLineNo">147</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span> admin2.createTable(table);<a name="line.148"></a>
-<span class="sourceLineNo">149</span> }<a name="line.149"></a>
-<span class="sourceLineNo">150</span> utility1.waitUntilAllRegionsAssigned(tablename);<a name="line.150"></a>
-<span class="sourceLineNo">151</span> utility2.waitUntilAllRegionsAssigned(tablename);<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span> Table lHtable1 = utility1.getConnection().getTable(tablename);<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span> // now suspend replication<a name="line.155"></a>
-<span class="sourceLineNo">156</span> admin.disablePeer("2");<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span> // put some data (lead with 0 so the edit gets sorted before the other table's edits<a name="line.158"></a>
-<span class="sourceLineNo">159</span> // in the replication batch)<a name="line.159"></a>
-<span class="sourceLineNo">160</span> // write a bunch of edits, making sure we fill a batch<a name="line.160"></a>
-<span class="sourceLineNo">161</span> byte[] rowkey = Bytes.toBytes(0+" put on table to be dropped");<a name="line.161"></a>
-<span class="sourceLineNo">162</span> Put put = new Put(rowkey);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> put.addColumn(familyname, row, row);<a name="line.163"></a>
-<span class="sourceLineNo">164</span> lHtable1.put(put);<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span> rowkey = Bytes.toBytes("normal put");<a name="line.166"></a>
-<span class="sourceLineNo">167</span> put = new Put(rowkey);<a name="line.167"></a>
-<span class="sourceLineNo">168</span> put.addColumn(famName, row, row);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> htable1.put(put);<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span> admin1.disableTable(tablename);<a name="line.172"></a>
-<span class="sourceLineNo">173</span> admin1.deleteTable(tablename);<a name="line.173"></a>
-<span class="sourceLineNo">174</span> }<a name="line.174"></a>
-<span class="sourceLineNo">175</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> admin2.disableTable(tablename);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> admin2.deleteTable(tablename);<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> admin.enablePeer("2");<a name="line.180"></a>
-<span class="sourceLineNo">181</span> if (allowProceeding) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span> // in this we'd expect the key to make it over<a name="line.182"></a>
-<span class="sourceLineNo">183</span> verifyReplicationProceeded(rowkey);<a name="line.183"></a>
-<span class="sourceLineNo">184</span> } else {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> verifyReplicationStuck(rowkey);<a name="line.185"></a>
-<span class="sourceLineNo">186</span> }<a name="line.186"></a>
-<span class="sourceLineNo">187</span> // just to be safe<a name="line.187"></a>
-<span class="sourceLineNo">188</span> conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, false);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span> @Test<a name="line.191"></a>
-<span class="sourceLineNo">192</span> public void testEditsBehindDroppedTableTiming() throws Exception {<a name="line.192"></a>
-<span class="sourceLineNo">193</span> conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, true);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> conf1.setInt(HConstants.REPLICATION_SOURCE_MAXTHREADS_KEY, 1);<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span> // make sure we have a single region server only, so that all<a name="line.196"></a>
-<span class="sourceLineNo">197</span> // edits for all tables go there<a name="line.197"></a>
-<span class="sourceLineNo">198</span> utility1.shutdownMiniHBaseCluster();<a name="line.198"></a>
-<span class="sourceLineNo">199</span> utility1.startMiniHBaseCluster(1, 1);<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span> TableName tablename = TableName.valueOf("testdroppedtimed");<a name="line.201"></a>
-<span class="sourceLineNo">202</span> byte[] familyname = Bytes.toBytes("fam");<a name="line.202"></a>
-<span class="sourceLineNo">203</span> byte[] row = Bytes.toBytes("row");<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span> HTableDescriptor table = new HTableDescriptor(tablename);<a name="line.205"></a>
-<span class="sourceLineNo">206</span> HColumnDescriptor fam = new HColumnDescriptor(familyname);<a name="line.206"></a>
-<span class="sourceLineNo">207</span> fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.207"></a>
-<span class="sourceLineNo">208</span> table.addFamily(fam);<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span> Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.210"></a>
-<span class="sourceLineNo">211</span> Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> admin1.createTable(table);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span> admin2.createTable(table);<a name="line.216"></a>
-<span class="sourceLineNo">217</span> }<a name="line.217"></a>
-<span class="sourceLineNo">218</span> utility1.waitUntilAllRegionsAssigned(tablename);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> utility2.waitUntilAllRegionsAssigned(tablename);<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span> Table lHtable1 = utility1.getConnection().getTable(tablename);<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span> // now suspend replication<a name="line.223"></a>
-<span class="sourceLineNo">224</span> admin.disablePeer("2");<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> // put some data (lead with 0 so the edit gets sorted before the other table's edits<a name="line.226"></a>
-<span class="sourceLineNo">227</span> // in the replication batch)<a name="line.227"></a>
-<span class="sourceLineNo">228</span> // write a bunch of edits, making sure we fill a batch<a name="line.228"></a>
-<span class="sourceLineNo">229</span> byte[] rowkey = Bytes.toBytes(0+" put on table to be dropped");<a name="line.229"></a>
-<span class="sourceLineNo">230</span> Put put = new Put(rowkey);<a name="line.230"></a>
-<span class="sourceLineNo">231</span> put.addColumn(familyname, row, row);<a name="line.231"></a>
-<span class="sourceLineNo">232</span> lHtable1.put(put);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span> rowkey = Bytes.toBytes("normal put");<a name="line.234"></a>
-<span class="sourceLineNo">235</span> put = new Put(rowkey);<a name="line.235"></a>
-<span class="sourceLineNo">236</span> put.addColumn(famName, row, row);<a name="line.236"></a>
-<span class="sourceLineNo">237</span> htable1.put(put);<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> admin2.disableTable(tablename);<a name="line.240"></a>
-<span class="sourceLineNo">241</span> admin2.deleteTable(tablename);<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> admin.enablePeer("2");<a name="line.244"></a>
-<span class="sourceLineNo">245</span> // edit should still be stuck<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span> // the source table still exists, replication should be stalled<a name="line.248"></a>
-<span class="sourceLineNo">249</span> verifyReplicationStuck(rowkey);<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span> admin1.disableTable(tablename);<a name="line.251"></a>
-<span class="sourceLineNo">252</span> // still stuck, source table still exists<a name="line.252"></a>
-<span class="sourceLineNo">253</span> verifyReplicationStuck(rowkey);<a name="line.253"></a>
-<span class="sourceLineNo">254</span><a name="line.254"></a>
-<span class="sourceLineNo">255</span> admin1.deleteTable(tablename);<a name="line.255"></a>
-<span class="sourceLineNo">256</span> // now the source table is gone, replication should proceed, the<a name="line.256"></a>
-<span class="sourceLineNo">257</span> // offending edits be dropped<a name="line.257"></a>
-<span class="sourceLineNo">258</span> verifyReplicationProceeded(rowkey);<a name="line.258"></a>
-<span class="sourceLineNo">259</span> }<a name="line.259"></a>
-<span class="sourceLineNo">260</span> // just to be safe<a name="line.260"></a>
-<span class="sourceLineNo">261</span> conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, false);<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> private void verifyReplicationProceeded(byte[] rowkey) throws Exception {<a name="line.264"></a>
-<span class="sourceLineNo">265</span> Get get = new Get(rowkey);<a name="line.265"></a>
-<span class="sourceLineNo">266</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> if (i==NB_RETRIES-1) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span> fail("Waited too much time for put replication");<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> Result res = htable2.get(get);<a name="line.270"></a>
-<span class="sourceLineNo">271</span> if (res.size() == 0) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span> LOG.info("Row not available");<a name="line.272"></a>
-<span class="sourceLineNo">273</span> Thread.sleep(SLEEP_TIME);<a name="line.273"></a>
-<span class="sourceLineNo">274</span> } else {<a name="line.274"></a>
-<span class="sourceLineNo">275</span> assertArrayEquals(res.getRow(), rowkey);<a name="line.275"></a>
-<span class="sourceLineNo">276</span> break;<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span> }<a name="line.278"></a>
-<span class="sourceLineNo">279</span> }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span> private void verifyReplicationStuck(byte[] rowkey) throws Exception {<a name="line.281"></a>
-<span class="sourceLineNo">282</span> Get get = new Get(rowkey);<a name="line.282"></a>
-<span class="sourceLineNo">283</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span> Result res = htable2.get(get);<a name="line.284"></a>
-<span class="sourceLineNo">285</span> if (res.size() >= 1) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> fail("Edit should have been stuck behind dropped tables");<a name="line.286"></a>
-<span class="sourceLineNo">287</span> } else {<a name="line.287"></a>
-<span class="sourceLineNo">288</span> LOG.info("Row not replicated, let's wait a bit more...");<a name="line.288"></a>
-<span class="sourceLineNo">289</span> Thread.sleep(SLEEP_TIME);<a name="line.289"></a>
-<span class="sourceLineNo">290</span> }<a name="line.290"></a>
-<span class="sourceLineNo">291</span> }<a name="line.291"></a>
-<span class="sourceLineNo">292</span> }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>}<a name="line.293"></a>
+<span class="sourceLineNo">122</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span> admin1.deleteNamespace("NS");<a name="line.123"></a>
+<span class="sourceLineNo">124</span> }<a name="line.124"></a>
+<span class="sourceLineNo">125</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span> admin2.deleteNamespace("NS");<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
+<span class="sourceLineNo">128</span> }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span> private void testEditsBehindDroppedTable(boolean allowProceeding, String tName) throws Exception {<a name="line.130"></a>
+<span class="sourceLineNo">131</span> conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, allowProceeding);<a name="line.131"></a>
+<span class="sourceLineNo">132</span> conf1.setInt(HConstants.REPLICATION_SOURCE_MAXTHREADS_KEY, 1);<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span> // make sure we have a single region server only, so that all<a name="line.134"></a>
+<span class="sourceLineNo">135</span> // edits for all tables go there<a name="line.135"></a>
+<span class="sourceLineNo">136</span> utility1.shutdownMiniHBaseCluster();<a name="line.136"></a>
+<span class="sourceLineNo">137</span> utility1.startMiniHBaseCluster(1, 1);<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span> TableName tablename = TableName.valueOf(tName);<a name="line.139"></a>
+<span class="sourceLineNo">140</span> byte[] familyname = Bytes.toBytes("fam");<a name="line.140"></a>
+<span class="sourceLineNo">141</span> byte[] row = Bytes.toBytes("row");<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> HTableDescriptor table = new HTableDescriptor(tablename);<a name="line.143"></a>
+<span class="sourceLineNo">144</span> HColumnDescriptor fam = new HColumnDescriptor(familyname);<a name="line.144"></a>
+<span class="sourceLineNo">145</span> fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.145"></a>
+<span class="sourceLineNo">146</span> table.addFamily(fam);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span> Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.148"></a>
+<span class="sourceLineNo">149</span> Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.149"></a>
+<span class="sourceLineNo">150</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> admin1.createTable(table);<a name="line.151"></a>
+<span class="sourceLineNo">152</span> }<a name="line.152"></a>
+<span class="sourceLineNo">153</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span> admin2.createTable(table);<a name="line.154"></a>
+<span class="sourceLineNo">155</span> }<a name="line.155"></a>
+<span class="sourceLineNo">156</span> utility1.waitUntilAllRegionsAssigned(tablename);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> utility2.waitUntilAllRegionsAssigned(tablename);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span> Table lHtable1 = utility1.getConnection().getTable(tablename);<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span> // now suspend replication<a name="line.161"></a>
+<span class="sourceLineNo">162</span> admin.disablePeer("2");<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> // put some data (lead with 0 so the edit gets sorted before the other table's edits<a name="line.164"></a>
+<span class="sourceLineNo">165</span> // in the replication batch)<a name="line.165"></a>
+<span class="sourceLineNo">166</span> // write a bunch of edits, making sure we fill a batch<a name="line.166"></a>
+<span class="sourceLineNo">167</span> byte[] rowkey = Bytes.toBytes(0+" put on table to be dropped");<a name="line.167"></a>
+<span class="sourceLineNo">168</span> Put put = new Put(rowkey);<a name="line.168"></a>
+<span class="sourceLineNo">169</span> put.addColumn(familyname, row, row);<a name="line.169"></a>
+<span class="sourceLineNo">170</span> lHtable1.put(put);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span> rowkey = Bytes.toBytes("normal put");<a name="line.172"></a>
+<span class="sourceLineNo">173</span> put = new Put(rowkey);<a name="line.173"></a>
+<span class="sourceLineNo">174</span> put.addColumn(famName, row, row);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> htable1.put(put);<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span> admin1.disableTable(tablename);<a name="line.178"></a>
+<span class="sourceLineNo">179</span> admin1.deleteTable(tablename);<a name="line.179"></a>
+<span class="sourceLineNo">180</span> }<a name="line.180"></a>
+<span class="sourceLineNo">181</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> admin2.disableTable(tablename);<a name="line.182"></a>
+<span class="sourceLineNo">183</span> admin2.deleteTable(tablename);<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> admin.enablePeer("2");<a name="line.186"></a>
+<span class="sourceLineNo">187</span> if (allowProceeding) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span> // in this we'd expect the key to make it over<a name="line.188"></a>
+<span class="sourceLineNo">189</span> verifyReplicationProceeded(rowkey);<a name="line.189"></a>
+<span class="sourceLineNo">190</span> } else {<a name="line.190"></a>
+<span class="sourceLineNo">191</span> verifyReplicationStuck(rowkey);<a name="line.191"></a>
+<span class="sourceLineNo">192</span> }<a name="line.192"></a>
+<span class="sourceLineNo">193</span> // just to be safe<a name="line.193"></a>
+<span class="sourceLineNo">194</span> conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, false);<a name="line.194"></a>
+<span class="sourceLineNo">195</span> }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span> @Test<a name="line.197"></a>
+<span class="sourceLineNo">198</span> public void testEditsBehindDroppedTableTiming() throws Exception {<a name="line.198"></a>
+<span class="sourceLineNo">199</span> conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, true);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> conf1.setInt(HConstants.REPLICATION_SOURCE_MAXTHREADS_KEY, 1);<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span> // make sure we have a single region server only, so that all<a name="line.202"></a>
+<span class="sourceLineNo">203</span> // edits for all tables go there<a name="line.203"></a>
+<span class="sourceLineNo">204</span> utility1.shutdownMiniHBaseCluster();<a name="line.204"></a>
+<span class="sourceLineNo">205</span> utility1.startMiniHBaseCluster(1, 1);<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span> TableName tablename = TableName.valueOf("testdroppedtimed");<a name="line.207"></a>
+<span class="sourceLineNo">208</span> byte[] familyname = Bytes.toBytes("fam");<a name="line.208"></a>
+<span class="sourceLineNo">209</span> byte[] row = Bytes.toBytes("row");<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span> HTableDescriptor table = new HTableDescriptor(tablename);<a name="line.211"></a>
+<span class="sourceLineNo">212</span> HColumnDescriptor fam = new HColumnDescriptor(familyname);<a name="line.212"></a>
+<span class="sourceLineNo">213</span> fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.213"></a>
+<span class="sourceLineNo">214</span> table.addFamily(fam);<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span> Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.216"></a>
+<span class="sourceLineNo">217</span> Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span> admin1.createTable(table);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> }<a name="line.220"></a>
+<span class="sourceLineNo">221</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span> admin2.createTable(table);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span> utility1.waitUntilAllRegionsAssigned(tablename);<a name="line.224"></a>
+<span class="sourceLineNo">225</span> utility2.waitUntilAllRegionsAssigned(tablename);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span> Table lHtable1 = utility1.getConnection().getTable(tablename);<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span> // now suspend replication<a name="line.229"></a>
+<span class="sourceLineNo">230</span> admin.disablePeer("2");<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span> // put some data (lead with 0 so the edit gets sorted before the other table's edits<a name="line.232"></a>
+<span class="sourceLineNo">233</span> // in the replication batch)<a name="line.233"></a>
+<span class="sourceLineNo">234</span> // write a bunch of edits, making sure we fill a batch<a name="line.234"></a>
+<span class="sourceLineNo">235</span> byte[] rowkey = Bytes.toBytes(0+" put on table to be dropped");<a name="line.235"></a>
+<span class="sourceLineNo">236</span> Put put = new Put(rowkey);<a name="line.236"></a>
+<span class="sourceLineNo">237</span> put.addColumn(familyname, row, row);<a name="line.237"></a>
+<span class="sourceLineNo">238</span> lHtable1.put(put);<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span> rowkey = Bytes.toBytes("normal put");<a name="line.240"></a>
+<span class="sourceLineNo">241</span> put = new Put(rowkey);<a name="line.241"></a>
+<span class="sourceLineNo">242</span> put.addColumn(famName, row, row);<a name="line.242"></a>
+<span class="sourceLineNo">243</span> htable1.put(put);<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span> admin2.disableTable(tablename);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> admin2.deleteTable(tablename);<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> admin.enablePeer("2");<a name="line.250"></a>
+<span class="sourceLineNo">251</span> // edit should still be stuck<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span> // the source table still exists, replication should be stalled<a name="line.254"></a>
+<span class="sourceLineNo">255</span> verifyReplicationStuck(rowkey);<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin1.disableTable(tablename);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> // still stuck, source table still exists<a name="line.258"></a>
+<span class="sourceLineNo">259</span> verifyReplicationStuck(rowkey);<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span> admin1.deleteTable(tablename);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> // now the source table is gone, replication should proceed, the<a name="line.262"></a>
+<span class="sourceLineNo">263</span> // offending edits be dropped<a name="line.263"></a>
+<span class="sourceLineNo">264</span> verifyReplicationProceeded(rowkey);<a name="line.264"></a>
+<span class="sourceLineNo">265</span> }<a name="line.265"></a>
+<span class="sourceLineNo">266</span> // just to be safe<a name="line.266"></a>
+<span class="sourceLineNo">267</span> conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, false);<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> private void verifyReplicationProceeded(byte[] rowkey) throws Exception {<a name="line.270"></a>
+<span class="sourceLineNo">271</span> Get get = new Get(rowkey);<a name="line.271"></a>
+<span class="sourceLineNo">272</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span> if (i==NB_RETRIES-1) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> fail("Waited too much time for put replication");<a name="line.274"></a>
+<span class="sourceLineNo">275</span> }<a name="line.275"></a>
+<span class="sourceLineNo">276</span> Result res = htable2.get(get);<a name="line.276"></a>
+<span class="sourceLineNo">277</span> if (res.size() == 0) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span> LOG.info("Row not available");<a name="line.278"></a>
+<span class="sourceLineNo">279</span> Thread.sleep(SLEEP_TIME);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> } else {<a name="line.280"></a>
+<span class="sourceLineNo">281</span> assertArrayEquals(res.getRow(), rowkey);<a name="line.281"></a>
+<span class="sourceLineNo">282</span> break;<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><a name="line.286"></a>
+<span class="sourceLineNo">287</span> private void verifyReplicationStuck(byte[] rowkey) throws Exception {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> Get get = new Get(rowkey);<a name="line.288"></a>
+<span class="sourceLineNo">289</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> Result res = htable2.get(get);<a name="line.290"></a>
+<span class="sourceLineNo">291</span> if (res.size() >= 1) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span> fail("Edit should have been stuck behind dropped tables");<a name="line.292"></a>
+<span class="sourceLineNo">293</span> } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span> LOG.info("Row not replicated, let's wait a bit more...");<a name="line.294"></a>
+<span class="sourceLineNo">295</span> Thread.sleep(SLEEP_TIME);<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>}<a name="line.299"></a>
[25/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 42aea6a..6bddba3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -570,14 +570,14 @@
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
index 28973e0..a1c9b1d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
@@ -81,14 +81,14 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
<ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure<TEnvironment> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>)
+<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a><V>, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
<ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
</ul>
</li>
-<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a><V>, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
+<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure<TEnvironment> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
</ul>
</li>
<li type="circle">org.apache.hadoop.hbase.procedure.ProcedureManager
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 19002f2..fbff915 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -205,9 +205,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
index a551938..49fe6cb 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
<li class="blockList">
<hr>
<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.61">TestQuotaAdmin</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.70">TestQuotaAdmin</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">minicluster tests that validate that quota entries are properly set in the quota table</div>
</li>
@@ -209,22 +209,26 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testQuotaRetrieverFilter--">testQuotaRetrieverFilter</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testMultiQuotaThrottling--">testMultiQuotaThrottling</a></span>()</code> </td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSetGetRemoveSpaceQuota--">testSetGetRemoveSpaceQuota</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testQuotaRetrieverFilter--">testQuotaRetrieverFilter</a></span>()</code> </td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSetModifyRemoveQuota--">testSetModifyRemoveQuota</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSetGetRemoveSpaceQuota--">testSetGetRemoveSpaceQuota</a></span>()</code> </td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSimpleScan--">testSimpleScan</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSetModifyRemoveQuota--">testSetModifyRemoveQuota</a></span>()</code> </td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSimpleScan--">testSimpleScan</a></span>()</code> </td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testThrottleType--">testThrottleType</a></span>()</code> </td>
</tr>
</table>
@@ -255,7 +259,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>CLASS_RULE</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.64">CLASS_RULE</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.73">CLASS_RULE</a></pre>
</li>
</ul>
<a name="LOG">
@@ -264,7 +268,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.67">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.76">LOG</a></pre>
</li>
</ul>
<a name="TEST_UTIL">
@@ -273,7 +277,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>TEST_UTIL</h4>
-<pre>private static final <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/quotas/TestQuotaAdmin.html#line.69">TEST_UTIL</a></pre>
+<pre>private static final <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/quotas/TestQuotaAdmin.html#line.78">TEST_UTIL</a></pre>
</li>
</ul>
</li>
@@ -290,7 +294,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>TestQuotaAdmin</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.61">TestQuotaAdmin</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.70">TestQuotaAdmin</a>()</pre>
</li>
</ul>
</li>
@@ -307,7 +311,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>setUpBeforeClass</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.72">setUpBeforeClass</a>()
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.81">setUpBeforeClass</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -321,7 +325,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>clearQuotaTable</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.85">clearQuotaTable</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.94">clearQuotaTable</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -335,7 +339,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>tearDownAfterClass</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.93">tearDownAfterClass</a>()
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.102">tearDownAfterClass</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -349,7 +353,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>testThrottleType</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.98">testThrottleType</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.107">testThrottleType</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -363,7 +367,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>testSimpleScan</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.146">testSimpleScan</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.155">testSimpleScan</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -371,13 +375,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</dl>
</li>
</ul>
+<a name="testMultiQuotaThrottling--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testMultiQuotaThrottling</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.196">testMultiQuotaThrottling</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="testQuotaRetrieverFilter--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testQuotaRetrieverFilter</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.187">testQuotaRetrieverFilter</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.239">testQuotaRetrieverFilter</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -391,7 +409,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>testSetGetRemoveSpaceQuota</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.266">testSetGetRemoveSpaceQuota</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.318">testSetGetRemoveSpaceQuota</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -405,7 +423,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>testSetModifyRemoveQuota</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.319">testSetModifyRemoveQuota</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.371">testSetModifyRemoveQuota</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -419,7 +437,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>assertNumResults</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.400">assertNumResults</a>(int expected,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.452">assertNumResults</a>(int expected,
org.apache.hadoop.hbase.quotas.QuotaFilter filter)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
@@ -434,7 +452,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>assertSpaceQuota</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.404">assertSpaceQuota</a>(long sizeLimit,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.456">assertSpaceQuota</a>(long sizeLimit,
org.apache.hadoop.hbase.quotas.SpaceViolationPolicy violationPolicy,
org.apache.hadoop.hbase.Cell cell)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -450,7 +468,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>assertSpaceQuota</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.414">assertSpaceQuota</a>(long sizeLimit,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.466">assertSpaceQuota</a>(long sizeLimit,
org.apache.hadoop.hbase.quotas.SpaceViolationPolicy violationPolicy,
org.apache.hadoop.hbase.quotas.QuotaSettings actualSettings)</pre>
</li>
@@ -461,7 +479,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>countResults</h4>
-<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.424">countResults</a>(org.apache.hadoop.hbase.quotas.QuotaFilter filter)
+<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.476">countResults</a>(org.apache.hadoop.hbase.quotas.QuotaFilter filter)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 6f26e19..0bff33a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -656,10 +656,10 @@
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
index a7cbaef..c1d9f54 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":9,"i7":9,"i8":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
<li class="blockList">
<hr>
<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.56">TestNamespaceReplication</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.63">TestNamespaceReplication</a>
extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></pre>
</li>
</ul>
@@ -175,14 +175,18 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#ns2">ns2</a></span></code> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#serialPeer">serialPeer</a></span></code> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>private static org.apache.hadoop.hbase.TableName</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#tabAName">tabAName</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>private static org.apache.hadoop.hbase.TableName</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#tabBName">tabBName</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>private static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#val">val</a></span></code> </td>
</tr>
@@ -192,7 +196,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -244,20 +248,28 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
byte[]... families)</code> </td>
</tr>
<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#isSerialPeer--">isSerialPeer</a></span>()</code> </td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#parameters--">parameters</a></span>()</code> </td>
+</tr>
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#put-org.apache.hadoop.hbase.client.Table-byte:A-byte:A...-">put</a></span>(org.apache.hadoop.hbase.client.Table source,
byte[] row,
byte[]... families)</code> </td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code> </td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#tearDownAfterClass--">tearDownAfterClass</a></span>()</code> </td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#testNamespaceReplication--">testNamespaceReplication</a></span>()</code> </td>
</tr>
@@ -267,7 +279,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -296,7 +308,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>CLASS_RULE</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.59">CLASS_RULE</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.66">CLASS_RULE</a></pre>
</li>
</ul>
<a name="LOG">
@@ -305,7 +317,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.62">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.69">LOG</a></pre>
</li>
</ul>
<a name="ns1">
@@ -314,7 +326,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>ns1</h4>
-<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.64">ns1</a></pre>
+<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.71">ns1</a></pre>
</li>
</ul>
<a name="ns2">
@@ -323,7 +335,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>ns2</h4>
-<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.65">ns2</a></pre>
+<pre>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.72">ns2</a></pre>
</li>
</ul>
<a name="tabAName">
@@ -332,7 +344,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>tabAName</h4>
-<pre>private static final org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.67">tabAName</a></pre>
+<pre>private static final org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.74">tabAName</a></pre>
</li>
</ul>
<a name="tabBName">
@@ -341,7 +353,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>tabBName</h4>
-<pre>private static final org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.68">tabBName</a></pre>
+<pre>private static final org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.75">tabBName</a></pre>
</li>
</ul>
<a name="f1Name">
@@ -350,7 +362,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>f1Name</h4>
-<pre>private static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.70">f1Name</a></pre>
+<pre>private static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.77">f1Name</a></pre>
</li>
</ul>
<a name="f2Name">
@@ -359,7 +371,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>f2Name</h4>
-<pre>private static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.71">f2Name</a></pre>
+<pre>private static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.78">f2Name</a></pre>
</li>
</ul>
<a name="val">
@@ -368,7 +380,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>val</h4>
-<pre>private static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.73">val</a></pre>
+<pre>private static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.80">val</a></pre>
</li>
</ul>
<a name="connection1">
@@ -377,7 +389,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>connection1</h4>
-<pre>private static org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.75">connection1</a></pre>
+<pre>private static org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.82">connection1</a></pre>
</li>
</ul>
<a name="connection2">
@@ -386,7 +398,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>connection2</h4>
-<pre>private static org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.76">connection2</a></pre>
+<pre>private static org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.83">connection2</a></pre>
</li>
</ul>
<a name="admin1">
@@ -395,16 +407,25 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>admin1</h4>
-<pre>private static org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.77">admin1</a></pre>
+<pre>private static org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.84">admin1</a></pre>
</li>
</ul>
<a name="admin2">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>admin2</h4>
-<pre>private static org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.78">admin2</a></pre>
+<pre>private static org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.85">admin2</a></pre>
+</li>
+</ul>
+<a name="serialPeer">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialPeer</h4>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.88">serialPeer</a></pre>
</li>
</ul>
</li>
@@ -421,7 +442,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>TestNamespaceReplication</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.56">TestNamespaceReplication</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.63">TestNamespaceReplication</a>()</pre>
</li>
</ul>
</li>
@@ -432,13 +453,35 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Method Detail</h3>
+<a name="isSerialPeer--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSerialPeer</h4>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.91">isSerialPeer</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="parameters--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parameters</h4>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.96">parameters</a>()</pre>
+</li>
+</ul>
<a name="setUpBeforeClass--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUpBeforeClass</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.81">setUpBeforeClass</a>()
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.101">setUpBeforeClass</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -452,7 +495,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>tearDownAfterClass</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.114">tearDownAfterClass</a>()
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.134">tearDownAfterClass</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -466,7 +509,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testNamespaceReplication</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.135">testNamespaceReplication</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.155">testNamespaceReplication</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -480,7 +523,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>put</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.192">put</a>(org.apache.hadoop.hbase.client.Table source,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.212">put</a>(org.apache.hadoop.hbase.client.Table source,
byte[] row,
byte[]... families)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -496,7 +539,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.201">delete</a>(org.apache.hadoop.hbase.client.Table source,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.221">delete</a>(org.apache.hadoop.hbase.client.Table source,
byte[] row,
byte[]... families)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -512,7 +555,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>ensureRowExisted</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.210">ensureRowExisted</a>(org.apache.hadoop.hbase.client.Table target,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.230">ensureRowExisted</a>(org.apache.hadoop.hbase.client.Table target,
byte[] row,
byte[]... families)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -528,7 +571,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>ensureRowNotExisted</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.232">ensureRowNotExisted</a>(org.apache.hadoop.hbase.client.Table target,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.252">ensureRowNotExisted</a>(org.apache.hadoop.hbase.client.Table target,
byte[] row,
byte[]... families)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
[31/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 5d4b9c2..847ef26 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -31337,7 +31337,7 @@
- nested exceptions
Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /
- ThrottlingException</div>
+ RpcThrottlingException</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html#findExpiredFiles-org.apache.hbase.thirdparty.com.google.common.collect.ImmutableList-long-java.util.List-java.util.Collection-">findExpiredFiles(ImmutableList<HStoreFile>, long, List<HStoreFile>, Collection<HStoreFile>)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFileManager</a></dt>
<dd> </dd>
@@ -32484,7 +32484,9 @@
<div class="block">Format the given ThreadInfo object as a String.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#formatZKString--">formatZKString()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmplImpl</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/http/log/LogLevel.Servlet.html#FORMS">FORMS</a></span> - Static variable in class org.apache.hadoop.hbase.http.log.<a href="org/apache/hadoop/hbase/http/log/LogLevel.Servlet.html" title="class in org.apache.hadoop.hbase.http.log">LogLevel.Servlet</a></dt>
@@ -51977,8 +51979,12 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/PrivateCellUtil.LastOnRowCell.html#getType--">getType()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/PrivateCellUtil.LastOnRowCell.html" title="class in org.apache.hadoop.hbase">PrivateCellUtil.LastOnRowCell</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/Tag.html#getType--">getType()</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ByteBufferKeyOnlyKeyValue.html#getTypeByte--">getTypeByte()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ByteBufferKeyOnlyKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyOnlyKeyValue</a></dt>
@@ -52754,8 +52760,12 @@
<dd>
<div class="block">Time in milliseconds to wait for before requesting to consume 'amount' resource.</div>
</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.html#getWAL--">getWAL()</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">WALCoprocessorEnvironment</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#getWAL--">getWAL()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
@@ -74232,10 +74242,18 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmplImpl.html#mServerWrap">mServerWrap</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmplImpl</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#MSG_TYPE">MSG_TYPE</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_TYPE">MSG_TYPE</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#MSG_WAIT">MSG_WAIT</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_WAIT">MSG_WAIT</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#msgInterval">msgInterval</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#MSLAB_CLASS_NAME">MSLAB_CLASS_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></dt>
@@ -94639,6 +94657,16 @@ service.</div>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/monitoring/TaskMonitor.html#rpcTasks">rpcTasks</a></span> - Variable in class org.apache.hadoop.hbase.monitoring.<a href="org/apache/hadoop/hbase/monitoring/TaskMonitor.html" title="class in org.apache.hadoop.hbase.monitoring">TaskMonitor</a></dt>
<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a> - Exception in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
+<dd>
+<div class="block">Describe the throttling result.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-java.lang.String-">RpcThrottlingException(String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException(RpcThrottlingException.Type, long, String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a> - Enum in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#rpcTimeout">rpcTimeout</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncConnectionImpl.html" title="class in org.apache.hadoop.hbase.client">AsyncConnectionImpl</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncProcessTask.Builder.html#rpcTimeout">rpcTimeout</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncProcessTask.Builder.html" title="class in org.apache.hadoop.hbase.client">AsyncProcessTask.Builder</a></dt>
@@ -97503,7 +97531,9 @@ service.</div>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceLimitingException.html#serialVersionUID">serialVersionUID</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#serialVersionUID">serialVersionUID</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/RegionException.html#serialVersionUID">serialVersionUID</a></span> - Static variable in exception org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/LeaseException.html#serialVersionUID">serialVersionUID</a></span> - Static variable in exception org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/LeaseException.html" title="class in org.apache.hadoop.hbase.regionserver">LeaseException</a></dt>
@@ -111036,14 +111066,22 @@ service.</div>
</dd>
<dt><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException</span></a> - Exception in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
<dd>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException(String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException(ThrottlingException.Type, long, String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a> - Enum in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><a href="org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle"><span class="typeNameLink">ThroughputController</span></a> - Interface in <a href="org/apache/hadoop/hbase/regionserver/throttle/package-summary.html">org.apache.hadoop.hbase.regionserver.throttle</a></dt>
<dd>
<div class="block">A utility that constrains the total throughput of one or more simultaneous flows by
@@ -111103,24 +111141,52 @@ service.</div>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/WALSplitter.PipelineController.html#thrown">thrown</a></span> - Variable in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALSplitter.PipelineController.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.PipelineController</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-">throwThrottlingException(RpcThrottlingException.Type, long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-">throwThrottlingException(ThrottlingException.Type, long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.WaitForStateCallable.html#throwTimeoutException-long-">throwTimeoutException(long)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.WaitForStateCallable.html" title="interface in org.apache.hadoop.hbase.client">HBaseAdmin.ProcedureFuture.WaitForStateCallable</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.TableWaitForStateCallable.html#throwTimeoutException-long-">throwTimeoutException(long)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.TableWaitForStateCallable.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin.TableFuture.TableWaitForStateCallable</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html#ti">ti</a></span> - Variable in class org.apache.hadoop.hbase.util.hbck.<a href="org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html" title="class in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandlerImpl</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/CurrentHourProvider.html#tick">tick</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/CurrentHourProvider.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CurrentHourProvider</a></dt>
@@ -111168,8 +111234,12 @@ service.</div>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ConnectionCache.ConnectionInfo.html#timedOut-int-">timedOut(int)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ConnectionCache.ConnectionInfo.html" title="class in org.apache.hadoop.hbase.util">ConnectionCache.ConnectionInfo</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#timeFromString-java.lang.String-">timeFromString(String)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#timeFromString-java.lang.String-">timeFromString(String)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#timeFromString-java.lang.String-">timeFromString(String)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/metrics/OperationMetrics.html#timeHisto">timeHisto</a></span> - Variable in class org.apache.hadoop.hbase.metrics.<a href="org/apache/hadoop/hbase/metrics/OperationMetrics.html" title="class in org.apache.hadoop.hbase.metrics">OperationMetrics</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/IncrementingEnvironmentEdge.html#timeIncrement">timeIncrement</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/IncrementingEnvironmentEdge.html" title="class in org.apache.hadoop.hbase.util">IncrementingEnvironmentEdge</a></dt>
@@ -114111,10 +114181,18 @@ service.</div>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html#type">type</a></span> - Variable in enum org.apache.hadoop.hbase.monitoring.<a href="org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring">TaskMonitor.TaskFilter.TaskType</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#type">type</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#Type--">Type()</a></span> - Constructor for enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#Type--">Type()</a></span> - Constructor for enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#Type--">Type()</a></span> - Constructor for enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html#Type--">Type()</a></span> - Constructor for enum org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver">TimeRangeTracker.Type</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#type">type</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html" title="class in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck</a></dt>
@@ -117213,6 +117291,10 @@ service.</div>
<dd>
<div class="block">Returns the enum constant of this type with the specified name.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></dt>
<dd>
<div class="block">Returns the enum constant of this type with the specified name.</div>
@@ -117223,6 +117305,7 @@ service.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Returns the enum constant of this type with the specified name.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/BloomType.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver">BloomType</a></dt>
@@ -117961,6 +118044,11 @@ the order they are declared.</div>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></dt>
<dd>
<div class="block">Returns an array containing the constants of this enum type, in
@@ -117973,6 +118061,7 @@ the order they are declared.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared.</div>
</dd>
@@ -118922,8 +119011,12 @@ the order they are declared.</div>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RateLimiter.html#waitInterval-long-">waitInterval(long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RateLimiter.html" title="class in org.apache.hadoop.hbase.quotas">RateLimiter</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#waitInterval">waitInterval</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#waitInterval">waitInterval</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#waitInterval">waitInterval</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#waitInterval">waitInterval</a></span> - Variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#waitMetaInitialized-org.apache.hadoop.hbase.procedure2.Procedure-">waitMetaInitialized(Procedure)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/HBaseIOException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/HBaseIOException.html b/devapidocs/org/apache/hadoop/hbase/HBaseIOException.html
index f8c653a..9c768fc 100644
--- a/devapidocs/org/apache/hadoop/hbase/HBaseIOException.html
+++ b/devapidocs/org/apache/hadoop/hbase/HBaseIOException.html
@@ -122,7 +122,7 @@
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../org/apache/hadoop/hbase/backup/impl/BackupException.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupException</a>, <a href="../../../../org/apache/hadoop/hbase/procedure2/BadProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">BadProcedureException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallCancelledException.html" title="class in org.apache.hadoop.hbase.ipc">CallCancelledException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc">CallTimeoutException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CellScannerButNoCodecException.html" title="class in org.apache.hadoop.hbase.ipc">CellScannerButNoCodecException</a>, <a href="../../../../org/apache/hadoop/hbase/master/ClusterSchemaException.html" title="class in org.apache.hadoop.hbase.master">ClusterSchemaException</a>, <a href="../../../../org/apache/hadoop/hbase/codec/Code
cException.html" title="class in org.apache.hadoop.hbase.codec">CodecException</a>, <a href="../../../../org/apache/hadoop/hbase/procedure2/store/wal/CorruptedWALProcedureStoreException.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">CorruptedWALProcedureStoreException</a>, <a href="../../../../org/apache/hadoop/hbase/regionserver/wal/DamagedWALException.html" title="class in org.apache.hadoop.hbase.regionserver.wal">DamagedWALException</a>, <a href="../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a>, <a href="../../../../org/apache/hadoop/hbase/master/assignment/FailedRemoteDispatchException.html" title="class in org.apache.hadoop.hbase.master.assignment">FailedRemoteDispatchException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FailedServerException.html" title="class in org.apache.hadoop.hbase.ipc">FailedServerException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc
/FallbackDisallowedException.html" title="class in org.apache.hadoop.hbase.ipc">FallbackDisallowedException</a>, <a href="../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.html" title="class in org.apache.hadoop.hbase.util">LeaseNotRecoveredException</a>, <a href="../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/master/NoSuchProcedureException.html" title="class in org.apache.hadoop.hbase.master">NoSuchProcedureException</a>, <a href="../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>, <a href="../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a>, <a href="../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashException.html" title="class in org.apache.hadoop.hbase.master.procedure">
ServerCrashException</a>, <a href="../../../../org/apache/hadoop/hbase/ServiceNotRunningException.html" title="class in org.apache.hadoop.hbase">ServiceNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc">StoppedRpcClientException</a>, <a href="../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a>, <a href="../../../../org/apache/hadoop/hbase/exceptions/UnexpectedStateException.html" title="class in org.apache.hadoop.hbase.exceptions">UnexpectedStateException</a>, <a href="../../../../org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client">WrongRowIOException</a></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/backup/impl/BackupException.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupException</a>, <a href="../../../../org/apache/hadoop/hbase/procedure2/BadProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">BadProcedureException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallCancelledException.html" title="class in org.apache.hadoop.hbase.ipc">CallCancelledException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc">CallTimeoutException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CellScannerButNoCodecException.html" title="class in org.apache.hadoop.hbase.ipc">CellScannerButNoCodecException</a>, <a href="../../../../org/apache/hadoop/hbase/master/ClusterSchemaException.html" title="class in org.apache.hadoop.hbase.master">ClusterSchemaException</a>, <a href="../../../../org/apache/hadoop/hbase/codec/Code
cException.html" title="class in org.apache.hadoop.hbase.codec">CodecException</a>, <a href="../../../../org/apache/hadoop/hbase/procedure2/store/wal/CorruptedWALProcedureStoreException.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">CorruptedWALProcedureStoreException</a>, <a href="../../../../org/apache/hadoop/hbase/regionserver/wal/DamagedWALException.html" title="class in org.apache.hadoop.hbase.regionserver.wal">DamagedWALException</a>, <a href="../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a>, <a href="../../../../org/apache/hadoop/hbase/master/assignment/FailedRemoteDispatchException.html" title="class in org.apache.hadoop.hbase.master.assignment">FailedRemoteDispatchException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FailedServerException.html" title="class in org.apache.hadoop.hbase.ipc">FailedServerException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc
/FallbackDisallowedException.html" title="class in org.apache.hadoop.hbase.ipc">FallbackDisallowedException</a>, <a href="../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.html" title="class in org.apache.hadoop.hbase.util">LeaseNotRecoveredException</a>, <a href="../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/master/NoSuchProcedureException.html" title="class in org.apache.hadoop.hbase.master">NoSuchProcedureException</a>, <a href="../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>, <a href="../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a>, <a href="../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingExcep
tion</a>, <a href="../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashException.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashException</a>, <a href="../../../../org/apache/hadoop/hbase/ServiceNotRunningException.html" title="class in org.apache.hadoop.hbase">ServiceNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc">StoppedRpcClientException</a>, <a href="../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a>, <a href="../../../../org/apache/hadoop/hbase/exceptions/UnexpectedStateException.html" title="class in org.apache.hadoop.hbase.exceptions">UnexpectedStateException</a>, <a href="../../../../org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client">WrongRowIOException</a></dd>
</dl>
<hr>
<br>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index fa84ec0..f2790ae 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html b/devapidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
index 87f7eed..71f5796 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
@@ -626,7 +626,9 @@
<tr class="altColor">
<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
</td>
</tr>
</tbody>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html b/devapidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
index 313a472..0253cde 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
@@ -1045,14 +1045,22 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span></code>
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></span></code>
<div class="block">An Exception that is thrown when a space quota is in violation.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
</td>
</tr>
</tbody>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 56eace7..39ca705 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -551,23 +551,23 @@
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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
index 973c23b..116b0a8 100644
--- a/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
@@ -158,7 +158,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
- nested exceptions
Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /
- ThrottlingException</div>
+ RpcThrottlingException</div>
</td>
</tr>
<tr id="i1" class="rowColor">
@@ -265,7 +265,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
- nested exceptions
Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /
- ThrottlingException</div>
+ RpcThrottlingException</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null if we didn't find the exception, the exception otherwise.</dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 12eb66d..1ee8f20 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -183,14 +183,14 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 fea7a14..90b418b 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -273,12 +273,12 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 6a2998c..1f90dde 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -350,8 +350,8 @@
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 bd6fd7e..dfed8e7 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -294,9 +294,9 @@
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 499b00f..7b4b20d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -347,10 +347,10 @@
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index 2d4a29c..0fa081d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -208,9 +208,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 9393be0..8a494b9 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -441,19 +441,19 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 190aee8..79bccf0 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -212,11 +212,11 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html b/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
index b9782fd..ec24917 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
@@ -391,7 +391,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota
<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html#line.61">checkQuota</a>(int numWrites,
int numReads,
int numScans)
- throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html#checkQuota-int-int-int-">OperationQuota</a></code></span></div>
<div class="block">Checks if it is possible to execute the specified operation.
The quota will be estimated based on the number of operations to perform
@@ -404,7 +404,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota
<dd><code>numReads</code> - number of small-read operation that will be performed</dd>
<dd><code>numScans</code> - number of long-read operation that will be performed</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be performed</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be performed because
+ RPC quota is exceeded.</dd>
</dl>
</li>
</ul>
[09/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
@@ -72,7 +72,7 @@
<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
<span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
<span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
<span class="sourceLineNo">069</span><a name="line.69"></a>
<span class="sourceLineNo">070</span> @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
<span class="sourceLineNo">078</span> @BeforeClass<a name="line.78"></a>
<span class="sourceLineNo">079</span> public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
<span class="sourceLineNo">080</span> TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span> admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span> public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span> // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span> public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> final List<RegionServerThread> rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span> for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span> }<a name="line.103"></a>
-<span class="sourceLineNo">104</span> // Wait for all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span> public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span> return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> }<a name="line.111"></a>
-<span class="sourceLineNo">112</span> }<a name="line.112"></a>
-<span class="sourceLineNo">113</span> return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span> public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.118"></a>
-<span class="sourceLineNo">119</span> for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span> // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span> }<a name="line.141"></a>
-<span class="sourceLineNo">142</span> });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span> @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span> public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span> });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span> // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span> public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span> int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span> admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span> if (admin.getPeersCount() <= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span> Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span> }<a name="line.183"></a>
-<span class="sourceLineNo">184</span> // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span> doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span> public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span> // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span> LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span> });<a name="line.196"></a>
-<span class="sourceLineNo">197</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<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> @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span> public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span> // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span> RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span> byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span> for (int i = 0; i < 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> if (row.length > 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span> Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span> }<a name="line.222"></a>
-<span class="sourceLineNo">223</span> }<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span> null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span> public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span> public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span> return failure;<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> admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span> utility1.deleteTableData(tableName);<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> @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span> //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span> // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span> doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span> public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span> });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span> //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span> //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span> "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<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> @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span> //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span> "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> }<a name="line.297"></a>
+<span class="sourceLineNo">081</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span> public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span> // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> final List<RegionServerThread> rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span> for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span> // Wait for all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span> public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span> for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span> return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> }<a name="line.110"></a>
+<span class="sourceLineNo">111</span> }<a name="line.111"></a>
+<span class="sourceLineNo">112</span> return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span> public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.117"></a>
+<span class="sourceLineNo">118</span> for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span> // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span> @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span> public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<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><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span> public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span> public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<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> doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin.removePeer("testCustomReplicationEndpoint");<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span> int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span> admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span> if (admin.getPeersCount() <= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> }<a name="line.182"></a>
+<span class="sourceLineNo">183</span> // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span> doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span> public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span> // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span> LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span> });<a name="line.195"></a>
+<span class="sourceLineNo">196</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span> }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span> @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span> public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span> final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span> // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span> RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span> byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span> for (int i = 0; i < 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> if (row.length > 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span> null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span> public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<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> @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span> public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span> }<a name="line.242"></a>
+<span class="sourceLineNo">243</span> });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span> utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span> @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span> //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span> doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span> public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span> });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span> //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<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> @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span> //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span> "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span> //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span> "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<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><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span> /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span> allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span> the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> */<a name="line.309"></a>
-<span class="sourceLineNo">310</span> String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span> long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span> String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span> String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span> String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span> long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span> source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span> source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span> source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span> source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span> source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span> source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span> source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span> source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span> verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span> verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span> verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> doPut(connection, row);<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><a name="line.363"></a>
-<span class="sourceLineNo">364</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span> Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span> }<a name="line.369"></a>
-<span class="sourceLineNo">370</span> }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span> private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span> static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> static volatile List<Entry> lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span> @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span> /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span> allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span> the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span> String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span> String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span> long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span> String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span> source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span> source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span> source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span> source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span> source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span> source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span> source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span> source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span> source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span> verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span> verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span> verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span> doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span> }<a name="line.360"></a>
+<span class="sourceLineNo">361</span> }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span> try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span> Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span> put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span> }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span> private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span> return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span> }<a name="line.374"></a>
+<span class="sourceLineNo">375</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span> Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span> static volatile List<Entry> lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span> public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> replicateCount.set(0);<a name="line.391"></a>
<span class="sourceLineNo">392</span> contructedCount.incrementAndGet();<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>
@@ -441,127 +441,131 @@
<span class="sourceLineNo">433</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
<span class="sourceLineNo">434</span> static boolean failedOnce;<a name="line.434"></a>
<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span> }<a name="line.441"></a>
-<span class="sourceLineNo">442</span> return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span> }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span> @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span> failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return new FailingDummyReplicator(entries, ordinal);<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> protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span> private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span> public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span> }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span> @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span> return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span> }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span> @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span> // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span> if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span> } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span> failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span> return new FailingDummyReplicator(entries, ordinal);<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><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span> @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span> public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> return ordinal;<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><a name="line.470"></a>
-<span class="sourceLineNo">471</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span> super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span> }<a name="line.475"></a>
+<span class="sourceLineNo">460</span> protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span> private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span> super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span> this.ordinal = ordinal;<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> @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span> public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span> return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span> }<a name="line.472"></a>
+<span class="sourceLineNo">473</span> }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span> public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span> }<a name="line.480"></a>
-<span class="sourceLineNo">481</span> }<a name="line.481"></a>
-<span class="sourceLineNo">482</span> }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span> static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span> @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span> try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span> // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span> doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span> } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span> return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span> }<a name="line.502"></a>
-<span class="sourceLineNo">503</span> }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span> super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span> }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span> @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span> public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span> @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span> // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span> doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span> return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span> }<a name="line.506"></a>
+<span class="sourceLineNo">507</span> }<a name="line.507"></a>
<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span> @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span> try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span> super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span> doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span> ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span> public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span> @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span> int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> for (int i = size-1; i >= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span> row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> cells.remove(i);<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> return entry;<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> }<a name="line.537"></a>
-<span class="sourceLineNo">538</span> }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span> @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span> public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span> return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span> public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span> return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span> @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span> try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span> doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span> } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span> ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span> return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span> }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span> @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span> public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span> @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (int i = size-1; i >= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span> row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span> cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span> }<a name="line.536"></a>
+<span class="sourceLineNo">537</span> }<a name="line.537"></a>
+<span class="sourceLineNo">538</span> return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> });<a name="line.540"></a>
+<span class="sourceLineNo">541</span> }<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> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span> @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span> public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> return entry;<a name="line.549"></a>
<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span> return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
<span class="sourceLineNo">555</span> }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
[04/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
index 5f0da23..6e967d8 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
@@ -31,27 +31,23 @@
<span class="sourceLineNo">023</span>import org.junit.ClassRule;<a name="line.23"></a>
<span class="sourceLineNo">024</span>import org.junit.Test;<a name="line.24"></a>
<span class="sourceLineNo">025</span>import org.junit.experimental.categories.Category;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.junit.runner.RunWith;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.junit.runners.Parameterized;<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> * Runs the TestReplicationKillRS test and selects the RS to kill in the master cluster<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * Do not add other tests in this class.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@RunWith(Parameterized.class)<a name="line.33"></a>
-<span class="sourceLineNo">034</span>@Category({ReplicationTests.class, LargeTests.class})<a name="line.34"></a>
-<span class="sourceLineNo">035</span>public class TestReplicationKillMasterRS extends TestReplicationKillRS {<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span> @ClassRule<a name="line.37"></a>
-<span class="sourceLineNo">038</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.38"></a>
-<span class="sourceLineNo">039</span> HBaseClassTestRule.forClass(TestReplicationKillMasterRS.class);<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span> @Test<a name="line.41"></a>
-<span class="sourceLineNo">042</span> public void killOneMasterRS() throws Exception {<a name="line.42"></a>
-<span class="sourceLineNo">043</span> loadTableAndKillRS(utility1);<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>}<a name="line.46"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Runs the TestReplicationKillRS test and selects the RS to kill in the master cluster<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * Do not add other tests in this class.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.31"></a>
+<span class="sourceLineNo">032</span>public class TestReplicationKillMasterRS extends TestReplicationKillRS {<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span> @ClassRule<a name="line.34"></a>
+<span class="sourceLineNo">035</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span> HBaseClassTestRule.forClass(TestReplicationKillMasterRS.class);<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span> @Test<a name="line.38"></a>
+<span class="sourceLineNo">039</span> public void killOneMasterRS() throws Exception {<a name="line.39"></a>
+<span class="sourceLineNo">040</span> loadTableAndKillRS(utility1);<a name="line.40"></a>
+<span class="sourceLineNo">041</span> }<a name="line.41"></a>
+<span class="sourceLineNo">042</span>}<a name="line.42"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
index 537a4e1..a3c7e67 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
@@ -37,7 +37,7 @@
<span class="sourceLineNo">029</span> * Run the same test as TestReplicationKillMasterRS but with WAL compression enabled<a name="line.29"></a>
<span class="sourceLineNo">030</span> * Do not add other tests in this class.<a name="line.30"></a>
<span class="sourceLineNo">031</span> */<a name="line.31"></a>
-<span class="sourceLineNo">032</span>@Category({ReplicationTests.class, LargeTests.class})<a name="line.32"></a>
+<span class="sourceLineNo">032</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.32"></a>
<span class="sourceLineNo">033</span>public class TestReplicationKillMasterRSCompressed extends TestReplicationKillMasterRS {<a name="line.33"></a>
<span class="sourceLineNo">034</span><a name="line.34"></a>
<span class="sourceLineNo">035</span> @ClassRule<a name="line.35"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..5064352
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
@@ -0,0 +1,119 @@
+<!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.replication;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.junit.BeforeClass;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.junit.ClassRule;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.junit.Test;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.experimental.categories.Category;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.30"></a>
+<span class="sourceLineNo">031</span>public class TestReplicationKillMasterRSWithSeparateOldWALs extends TestReplicationKillRS {<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span> @ClassRule<a name="line.33"></a>
+<span class="sourceLineNo">034</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.34"></a>
+<span class="sourceLineNo">035</span> HBaseClassTestRule.forClass(TestReplicationKillMasterRSWithSeparateOldWALs.class);<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span> @BeforeClass<a name="line.37"></a>
+<span class="sourceLineNo">038</span> public static void setUpBeforeClass() throws Exception {<a name="line.38"></a>
+<span class="sourceLineNo">039</span> conf1.setBoolean(AbstractFSWALProvider.SEPARATE_OLDLOGDIR, true);<a name="line.39"></a>
+<span class="sourceLineNo">040</span> TestReplicationBase.setUpBeforeClass();<a name="line.40"></a>
+<span class="sourceLineNo">041</span> }<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span> @Test<a name="line.43"></a>
+<span class="sourceLineNo">044</span> public void killOneMasterRS() throws Exception {<a name="line.44"></a>
+<span class="sourceLineNo">045</span> loadTableAndKillRS(utility1);<a name="line.45"></a>
+<span class="sourceLineNo">046</span> }<a name="line.46"></a>
+<span class="sourceLineNo">047</span>}<a name="line.47"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
index d65aa54..68865ce 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
@@ -31,26 +31,23 @@
<span class="sourceLineNo">023</span>import org.junit.ClassRule;<a name="line.23"></a>
<span class="sourceLineNo">024</span>import org.junit.Test;<a name="line.24"></a>
<span class="sourceLineNo">025</span>import org.junit.experimental.categories.Category;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.junit.runner.RunWith;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.junit.runners.Parameterized;<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> * Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * Do not add other tests in this class.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@RunWith(Parameterized.class)<a name="line.33"></a>
-<span class="sourceLineNo">034</span>@Category({ReplicationTests.class, LargeTests.class})<a name="line.34"></a>
-<span class="sourceLineNo">035</span>public class TestReplicationKillSlaveRS extends TestReplicationKillRS {<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span> @ClassRule<a name="line.37"></a>
-<span class="sourceLineNo">038</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.38"></a>
-<span class="sourceLineNo">039</span> HBaseClassTestRule.forClass(TestReplicationKillSlaveRS.class);<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span> @Test<a name="line.41"></a>
-<span class="sourceLineNo">042</span> public void killOneSlaveRS() throws Exception {<a name="line.42"></a>
-<span class="sourceLineNo">043</span> loadTableAndKillRS(utility2);<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">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * Do not add other tests in this class.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.31"></a>
+<span class="sourceLineNo">032</span>public class TestReplicationKillSlaveRS extends TestReplicationKillRS {<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span> @ClassRule<a name="line.34"></a>
+<span class="sourceLineNo">035</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span> HBaseClassTestRule.forClass(TestReplicationKillSlaveRS.class);<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span> @Test<a name="line.38"></a>
+<span class="sourceLineNo">039</span> public void killOneSlaveRS() throws Exception {<a name="line.39"></a>
+<span class="sourceLineNo">040</span> loadTableAndKillRS(utility2);<a name="line.40"></a>
+<span class="sourceLineNo">041</span> }<a name="line.41"></a>
+<span class="sourceLineNo">042</span>}<a name="line.42"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..23e218b
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
@@ -0,0 +1,119 @@
+<!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.replication;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.junit.BeforeClass;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.junit.ClassRule;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.junit.Test;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.experimental.categories.Category;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.30"></a>
+<span class="sourceLineNo">031</span>public class TestReplicationKillSlaveRSWithSeparateOldWALs extends TestReplicationKillRS {<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span> @ClassRule<a name="line.33"></a>
+<span class="sourceLineNo">034</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.34"></a>
+<span class="sourceLineNo">035</span> HBaseClassTestRule.forClass(TestReplicationKillSlaveRSWithSeparateOldWALs.class);<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span> @BeforeClass<a name="line.37"></a>
+<span class="sourceLineNo">038</span> public static void setUpBeforeClass() throws Exception {<a name="line.38"></a>
+<span class="sourceLineNo">039</span> conf1.setBoolean(AbstractFSWALProvider.SEPARATE_OLDLOGDIR, true);<a name="line.39"></a>
+<span class="sourceLineNo">040</span> TestReplicationBase.setUpBeforeClass();<a name="line.40"></a>
+<span class="sourceLineNo">041</span> }<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span> @Test<a name="line.43"></a>
+<span class="sourceLineNo">044</span> public void killOneSlaveRS() throws Exception {<a name="line.44"></a>
+<span class="sourceLineNo">045</span> loadTableAndKillRS(utility2);<a name="line.45"></a>
+<span class="sourceLineNo">046</span> }<a name="line.46"></a>
+<span class="sourceLineNo">047</span>}<a name="line.47"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
[15/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html
index 54be0f3..eb0b0ab 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html
@@ -32,298 +32,302 @@
<span class="sourceLineNo">024</span><a name="line.24"></a>
<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
<span class="sourceLineNo">026</span>import java.util.ArrayList;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.Arrays;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.List;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.NavigableMap;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.TreeMap;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.conf.Configuration;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HConstants;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.TableName;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.client.Get;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.client.Put;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.Result;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.Table;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.util.JVMClusterUtil;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.junit.AfterClass;<a name="line.56"></a>
+<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.NavigableMap;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.TreeMap;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.conf.Configuration;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HConstants;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.TableName;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.Get;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.client.Put;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.client.Result;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.Table;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.util.JVMClusterUtil;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.junit.After;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.junit.AfterClass;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.junit.Before;<a name="line.56"></a>
<span class="sourceLineNo">057</span>import org.junit.BeforeClass;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.junit.runners.Parameterized.Parameter;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.junit.runners.Parameterized.Parameters;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.slf4j.Logger;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.slf4j.LoggerFactory;<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 is only a base for other integration-level replication tests.<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * Do not add tests here.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * TestReplicationSmallTests is where tests that don't require bring machines up/down should go<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * All other tests should have their own classes and extend this one<a name="line.67"></a>
-<span class="sourceLineNo">068</span> */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>public class TestReplicationBase {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>/*<a name="line.70"></a>
-<span class="sourceLineNo">071</span> {<a name="line.71"></a>
-<span class="sourceLineNo">072</span> ((Log4JLogger) ReplicationSource.LOG).getLogger().setLevel(Level.ALL);<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> private static final Logger LOG = LoggerFactory.getLogger(TestReplicationBase.class);<a name="line.75"></a>
+<span class="sourceLineNo">058</span>import org.slf4j.Logger;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.slf4j.LoggerFactory;<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> * This class is only a base for other integration-level replication tests.<a name="line.62"></a>
+<span class="sourceLineNo">063</span> * Do not add tests here.<a name="line.63"></a>
+<span class="sourceLineNo">064</span> * TestReplicationSmallTests is where tests that don't require bring machines up/down should go<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * All other tests should have their own classes and extend this one<a name="line.65"></a>
+<span class="sourceLineNo">066</span> */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>public class TestReplicationBase {<a name="line.67"></a>
+<span class="sourceLineNo">068</span> private static final Logger LOG = LoggerFactory.getLogger(TestReplicationBase.class);<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span> protected static Configuration conf1 = HBaseConfiguration.create();<a name="line.70"></a>
+<span class="sourceLineNo">071</span> protected static Configuration conf2;<a name="line.71"></a>
+<span class="sourceLineNo">072</span> protected static Configuration CONF_WITH_LOCALFS;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span> protected static ZKWatcher zkw1;<a name="line.74"></a>
+<span class="sourceLineNo">075</span> protected static ZKWatcher zkw2;<a name="line.75"></a>
<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span> protected static Configuration conf1 = HBaseConfiguration.create();<a name="line.77"></a>
-<span class="sourceLineNo">078</span> protected static Configuration conf2;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> protected static Configuration CONF_WITH_LOCALFS;<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span> protected static ZKWatcher zkw1;<a name="line.81"></a>
-<span class="sourceLineNo">082</span> protected static ZKWatcher zkw2;<a name="line.82"></a>
+<span class="sourceLineNo">077</span> protected static ReplicationAdmin admin;<a name="line.77"></a>
+<span class="sourceLineNo">078</span> protected static Admin hbaseAdmin;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span> protected static Table htable1;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> protected static Table htable2;<a name="line.81"></a>
+<span class="sourceLineNo">082</span> protected static NavigableMap<byte[], Integer> scopes;<a name="line.82"></a>
<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span> protected static ReplicationAdmin admin;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> protected static Admin hbaseAdmin;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span> protected static Table htable1;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> protected static Table htable2;<a name="line.88"></a>
-<span class="sourceLineNo">089</span> protected static NavigableMap<byte[], Integer> scopes;<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span> protected static HBaseTestingUtility utility1;<a name="line.91"></a>
-<span class="sourceLineNo">092</span> protected static HBaseTestingUtility utility2;<a name="line.92"></a>
-<span class="sourceLineNo">093</span> protected static final int NB_ROWS_IN_BATCH = 100;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> protected static final int NB_ROWS_IN_BIG_BATCH =<a name="line.94"></a>
-<span class="sourceLineNo">095</span> NB_ROWS_IN_BATCH * 10;<a name="line.95"></a>
-<span class="sourceLineNo">096</span> protected static final long SLEEP_TIME = 500;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> protected static final int NB_RETRIES = 10;<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span> protected static final TableName tableName = TableName.valueOf("test");<a name="line.99"></a>
-<span class="sourceLineNo">100</span> protected static final byte[] famName = Bytes.toBytes("f");<a name="line.100"></a>
-<span class="sourceLineNo">101</span> protected static final byte[] row = Bytes.toBytes("row");<a name="line.101"></a>
-<span class="sourceLineNo">102</span> protected static final byte[] noRepfamName = Bytes.toBytes("norep");<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span> @Parameter<a name="line.104"></a>
-<span class="sourceLineNo">105</span> public static boolean seperateOldWALs;<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span> @Parameters<a name="line.107"></a>
-<span class="sourceLineNo">108</span> public static List<Boolean> params() {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> return Arrays.asList(false, true);<a name="line.109"></a>
-<span class="sourceLineNo">110</span> }<a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span> protected final void cleanUp() throws IOException, InterruptedException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span> // Starting and stopping replication can make us miss new logs,<a name="line.113"></a>
-<span class="sourceLineNo">114</span> // rolling like this makes sure the most recent one gets added to the queue<a name="line.114"></a>
-<span class="sourceLineNo">115</span> for (JVMClusterUtil.RegionServerThread r : utility1.getHBaseCluster()<a name="line.115"></a>
-<span class="sourceLineNo">116</span> .getRegionServerThreads()) {<a name="line.116"></a>
-<span class="sourceLineNo">117</span> utility1.getAdmin().rollWALWriter(r.getRegionServer().getServerName());<a name="line.117"></a>
-<span class="sourceLineNo">118</span> }<a name="line.118"></a>
-<span class="sourceLineNo">119</span> int rowCount = utility1.countRows(tableName);<a name="line.119"></a>
-<span class="sourceLineNo">120</span> utility1.deleteTableData(tableName);<a name="line.120"></a>
-<span class="sourceLineNo">121</span> // truncating the table will send one Delete per row to the slave cluster<a name="line.121"></a>
-<span class="sourceLineNo">122</span> // in an async fashion, which is why we cannot just call deleteTableData on<a name="line.122"></a>
-<span class="sourceLineNo">123</span> // utility2 since late writes could make it to the slave in some way.<a name="line.123"></a>
-<span class="sourceLineNo">124</span> // Instead, we truncate the first table and wait for all the Deletes to<a name="line.124"></a>
-<span class="sourceLineNo">125</span> // make it to the slave.<a name="line.125"></a>
-<span class="sourceLineNo">126</span> Scan scan = new Scan();<a name="line.126"></a>
-<span class="sourceLineNo">127</span> int lastCount = 0;<a name="line.127"></a>
-<span class="sourceLineNo">128</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span> if (i == NB_RETRIES - 1) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span> fail("Waited too much time for truncate");<a name="line.130"></a>
-<span class="sourceLineNo">131</span> }<a name="line.131"></a>
-<span class="sourceLineNo">132</span> ResultScanner scanner = htable2.getScanner(scan);<a name="line.132"></a>
-<span class="sourceLineNo">133</span> Result[] res = scanner.next(rowCount);<a name="line.133"></a>
-<span class="sourceLineNo">134</span> scanner.close();<a name="line.134"></a>
-<span class="sourceLineNo">135</span> if (res.length != 0) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span> if (res.length < lastCount) {<a name="line.136"></a>
-<span class="sourceLineNo">137</span> i--; // Don't increment timeout if we make progress<a name="line.137"></a>
-<span class="sourceLineNo">138</span> }<a name="line.138"></a>
-<span class="sourceLineNo">139</span> lastCount = res.length;<a name="line.139"></a>
-<span class="sourceLineNo">140</span> LOG.info("Still got " + res.length + " rows");<a name="line.140"></a>
-<span class="sourceLineNo">141</span> Thread.sleep(SLEEP_TIME);<a name="line.141"></a>
-<span class="sourceLineNo">142</span> } else {<a name="line.142"></a>
-<span class="sourceLineNo">143</span> break;<a name="line.143"></a>
-<span class="sourceLineNo">144</span> }<a name="line.144"></a>
-<span class="sourceLineNo">145</span> }<a name="line.145"></a>
-<span class="sourceLineNo">146</span> }<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span> protected static void waitForReplication(int expectedRows, int retries)<a name="line.148"></a>
-<span class="sourceLineNo">149</span> throws IOException, InterruptedException {<a name="line.149"></a>
-<span class="sourceLineNo">150</span> Scan scan;<a name="line.150"></a>
-<span class="sourceLineNo">151</span> for (int i = 0; i < retries; i++) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span> scan = new Scan();<a name="line.152"></a>
-<span class="sourceLineNo">153</span> if (i== retries -1) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> fail("Waited too much time for normal batch replication");<a name="line.154"></a>
-<span class="sourceLineNo">155</span> }<a name="line.155"></a>
-<span class="sourceLineNo">156</span> ResultScanner scanner = htable2.getScanner(scan);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> Result[] res = scanner.next(expectedRows);<a name="line.157"></a>
-<span class="sourceLineNo">158</span> scanner.close();<a name="line.158"></a>
-<span class="sourceLineNo">159</span> if (res.length != expectedRows) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span> LOG.info("Only got " + res.length + " rows");<a name="line.160"></a>
-<span class="sourceLineNo">161</span> Thread.sleep(SLEEP_TIME);<a name="line.161"></a>
-<span class="sourceLineNo">162</span> } else {<a name="line.162"></a>
-<span class="sourceLineNo">163</span> break;<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">084</span> protected static HBaseTestingUtility utility1;<a name="line.84"></a>
+<span class="sourceLineNo">085</span> protected static HBaseTestingUtility utility2;<a name="line.85"></a>
+<span class="sourceLineNo">086</span> protected static final int NB_ROWS_IN_BATCH = 100;<a name="line.86"></a>
+<span class="sourceLineNo">087</span> protected static final int NB_ROWS_IN_BIG_BATCH =<a name="line.87"></a>
+<span class="sourceLineNo">088</span> NB_ROWS_IN_BATCH * 10;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> protected static final long SLEEP_TIME = 500;<a name="line.89"></a>
+<span class="sourceLineNo">090</span> protected static final int NB_RETRIES = 10;<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span> protected static final TableName tableName = TableName.valueOf("test");<a name="line.92"></a>
+<span class="sourceLineNo">093</span> protected static final byte[] famName = Bytes.toBytes("f");<a name="line.93"></a>
+<span class="sourceLineNo">094</span> protected static final byte[] row = Bytes.toBytes("row");<a name="line.94"></a>
+<span class="sourceLineNo">095</span> protected static final byte[] noRepfamName = Bytes.toBytes("norep");<a name="line.95"></a>
+<span class="sourceLineNo">096</span> protected static final String PEER_ID2 = "2";<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span> protected boolean isSerialPeer() {<a name="line.98"></a>
+<span class="sourceLineNo">099</span> return false;<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> protected final void cleanUp() throws IOException, InterruptedException {<a name="line.102"></a>
+<span class="sourceLineNo">103</span> // Starting and stopping replication can make us miss new logs,<a name="line.103"></a>
+<span class="sourceLineNo">104</span> // rolling like this makes sure the most recent one gets added to the queue<a name="line.104"></a>
+<span class="sourceLineNo">105</span> for (JVMClusterUtil.RegionServerThread r : utility1.getHBaseCluster()<a name="line.105"></a>
+<span class="sourceLineNo">106</span> .getRegionServerThreads()) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span> utility1.getAdmin().rollWALWriter(r.getRegionServer().getServerName());<a name="line.107"></a>
+<span class="sourceLineNo">108</span> }<a name="line.108"></a>
+<span class="sourceLineNo">109</span> int rowCount = utility1.countRows(tableName);<a name="line.109"></a>
+<span class="sourceLineNo">110</span> utility1.deleteTableData(tableName);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> // truncating the table will send one Delete per row to the slave cluster<a name="line.111"></a>
+<span class="sourceLineNo">112</span> // in an async fashion, which is why we cannot just call deleteTableData on<a name="line.112"></a>
+<span class="sourceLineNo">113</span> // utility2 since late writes could make it to the slave in some way.<a name="line.113"></a>
+<span class="sourceLineNo">114</span> // Instead, we truncate the first table and wait for all the Deletes to<a name="line.114"></a>
+<span class="sourceLineNo">115</span> // make it to the slave.<a name="line.115"></a>
+<span class="sourceLineNo">116</span> Scan scan = new Scan();<a name="line.116"></a>
+<span class="sourceLineNo">117</span> int lastCount = 0;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (i == NB_RETRIES - 1) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> fail("Waited too much time for truncate");<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> ResultScanner scanner = htable2.getScanner(scan);<a name="line.122"></a>
+<span class="sourceLineNo">123</span> Result[] res = scanner.next(rowCount);<a name="line.123"></a>
+<span class="sourceLineNo">124</span> scanner.close();<a name="line.124"></a>
+<span class="sourceLineNo">125</span> if (res.length != 0) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span> if (res.length < lastCount) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span> i--; // Don't increment timeout if we make progress<a name="line.127"></a>
+<span class="sourceLineNo">128</span> }<a name="line.128"></a>
+<span class="sourceLineNo">129</span> lastCount = res.length;<a name="line.129"></a>
+<span class="sourceLineNo">130</span> LOG.info("Still got " + res.length + " rows");<a name="line.130"></a>
+<span class="sourceLineNo">131</span> Thread.sleep(SLEEP_TIME);<a name="line.131"></a>
+<span class="sourceLineNo">132</span> } else {<a name="line.132"></a>
+<span class="sourceLineNo">133</span> break;<a name="line.133"></a>
+<span class="sourceLineNo">134</span> }<a name="line.134"></a>
+<span class="sourceLineNo">135</span> }<a name="line.135"></a>
+<span class="sourceLineNo">136</span> }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span> protected static void waitForReplication(int expectedRows, int retries)<a name="line.138"></a>
+<span class="sourceLineNo">139</span> throws IOException, InterruptedException {<a name="line.139"></a>
+<span class="sourceLineNo">140</span> Scan scan;<a name="line.140"></a>
+<span class="sourceLineNo">141</span> for (int i = 0; i < retries; i++) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span> scan = new Scan();<a name="line.142"></a>
+<span class="sourceLineNo">143</span> if (i== retries -1) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> fail("Waited too much time for normal batch replication");<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span> ResultScanner scanner = htable2.getScanner(scan);<a name="line.146"></a>
+<span class="sourceLineNo">147</span> Result[] res = scanner.next(expectedRows);<a name="line.147"></a>
+<span class="sourceLineNo">148</span> scanner.close();<a name="line.148"></a>
+<span class="sourceLineNo">149</span> if (res.length != expectedRows) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span> LOG.info("Only got " + res.length + " rows");<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Thread.sleep(SLEEP_TIME);<a name="line.151"></a>
+<span class="sourceLineNo">152</span> } else {<a name="line.152"></a>
+<span class="sourceLineNo">153</span> break;<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> }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span> protected static void loadData(String prefix, byte[] row) throws IOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span> List<Put> puts = new ArrayList<>(NB_ROWS_IN_BATCH);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> for (int i = 0; i < NB_ROWS_IN_BATCH; i++) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span> Put put = new Put(Bytes.toBytes(prefix + Integer.toString(i)));<a name="line.161"></a>
+<span class="sourceLineNo">162</span> put.addColumn(famName, row, row);<a name="line.162"></a>
+<span class="sourceLineNo">163</span> puts.add(put);<a name="line.163"></a>
+<span class="sourceLineNo">164</span> }<a name="line.164"></a>
+<span class="sourceLineNo">165</span> htable1.put(puts);<a name="line.165"></a>
<span class="sourceLineNo">166</span> }<a name="line.166"></a>
<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> protected static void loadData(String prefix, byte[] row) throws IOException {<a name="line.168"></a>
-<span class="sourceLineNo">169</span> List<Put> puts = new ArrayList<>(NB_ROWS_IN_BATCH);<a name="line.169"></a>
-<span class="sourceLineNo">170</span> for (int i = 0; i < NB_ROWS_IN_BATCH; i++) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span> Put put = new Put(Bytes.toBytes(prefix + Integer.toString(i)));<a name="line.171"></a>
-<span class="sourceLineNo">172</span> put.addColumn(famName, row, row);<a name="line.172"></a>
-<span class="sourceLineNo">173</span> puts.add(put);<a name="line.173"></a>
-<span class="sourceLineNo">174</span> }<a name="line.174"></a>
-<span class="sourceLineNo">175</span> htable1.put(puts);<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> @BeforeClass<a name="line.178"></a>
-<span class="sourceLineNo">179</span> public static void setUpBeforeClass() throws Exception {<a name="line.179"></a>
-<span class="sourceLineNo">180</span> conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");<a name="line.180"></a>
-<span class="sourceLineNo">181</span> // We don't want too many edits per batch sent to the ReplicationEndpoint to trigger<a name="line.181"></a>
-<span class="sourceLineNo">182</span> // sufficient number of events. But we don't want to go too low because<a name="line.182"></a>
-<span class="sourceLineNo">183</span> // HBaseInterClusterReplicationEndpoint partitions entries into batches and we want<a name="line.183"></a>
-<span class="sourceLineNo">184</span> // more than one batch sent to the peer cluster for better testing.<a name="line.184"></a>
-<span class="sourceLineNo">185</span> conf1.setInt("replication.source.size.capacity", 102400);<a name="line.185"></a>
-<span class="sourceLineNo">186</span> conf1.setLong("replication.source.sleepforretries", 100);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> conf1.setInt("hbase.regionserver.maxlogs", 10);<a name="line.187"></a>
-<span class="sourceLineNo">188</span> conf1.setLong("hbase.master.logcleaner.ttl", 10);<a name="line.188"></a>
-<span class="sourceLineNo">189</span> conf1.setInt("zookeeper.recovery.retry", 1);<a name="line.189"></a>
-<span class="sourceLineNo">190</span> conf1.setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.190"></a>
-<span class="sourceLineNo">191</span> conf1.setLong(HConstants.THREAD_WAKE_FREQUENCY, 100);<a name="line.191"></a>
-<span class="sourceLineNo">192</span> conf1.setInt("replication.stats.thread.period.seconds", 5);<a name="line.192"></a>
-<span class="sourceLineNo">193</span> conf1.setBoolean("hbase.tests.use.shortcircuit.reads", false);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> conf1.setLong("replication.sleep.before.failover", 2000);<a name="line.194"></a>
-<span class="sourceLineNo">195</span> conf1.setInt("replication.source.maxretriesmultiplier", 10);<a name="line.195"></a>
-<span class="sourceLineNo">196</span> conf1.setFloat("replication.source.ratio", 1.0f);<a name="line.196"></a>
-<span class="sourceLineNo">197</span> conf1.setBoolean("replication.source.eof.autorecovery", true);<a name="line.197"></a>
+<span class="sourceLineNo">168</span> @BeforeClass<a name="line.168"></a>
+<span class="sourceLineNo">169</span> public static void setUpBeforeClass() throws Exception {<a name="line.169"></a>
+<span class="sourceLineNo">170</span> conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");<a name="line.170"></a>
+<span class="sourceLineNo">171</span> // We don't want too many edits per batch sent to the ReplicationEndpoint to trigger<a name="line.171"></a>
+<span class="sourceLineNo">172</span> // sufficient number of events. But we don't want to go too low because<a name="line.172"></a>
+<span class="sourceLineNo">173</span> // HBaseInterClusterReplicationEndpoint partitions entries into batches and we want<a name="line.173"></a>
+<span class="sourceLineNo">174</span> // more than one batch sent to the peer cluster for better testing.<a name="line.174"></a>
+<span class="sourceLineNo">175</span> conf1.setInt("replication.source.size.capacity", 102400);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> conf1.setLong("replication.source.sleepforretries", 100);<a name="line.176"></a>
+<span class="sourceLineNo">177</span> conf1.setInt("hbase.regionserver.maxlogs", 10);<a name="line.177"></a>
+<span class="sourceLineNo">178</span> conf1.setLong("hbase.master.logcleaner.ttl", 10);<a name="line.178"></a>
+<span class="sourceLineNo">179</span> conf1.setInt("zookeeper.recovery.retry", 1);<a name="line.179"></a>
+<span class="sourceLineNo">180</span> conf1.setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> conf1.setLong(HConstants.THREAD_WAKE_FREQUENCY, 100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> conf1.setInt("replication.stats.thread.period.seconds", 5);<a name="line.182"></a>
+<span class="sourceLineNo">183</span> conf1.setBoolean("hbase.tests.use.shortcircuit.reads", false);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> conf1.setLong("replication.sleep.before.failover", 2000);<a name="line.184"></a>
+<span class="sourceLineNo">185</span> conf1.setInt("replication.source.maxretriesmultiplier", 10);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> conf1.setFloat("replication.source.ratio", 1.0f);<a name="line.186"></a>
+<span class="sourceLineNo">187</span> conf1.setBoolean("replication.source.eof.autorecovery", true);<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span> utility1 = new HBaseTestingUtility(conf1);<a name="line.189"></a>
+<span class="sourceLineNo">190</span> utility1.startMiniZKCluster();<a name="line.190"></a>
+<span class="sourceLineNo">191</span> MiniZooKeeperCluster miniZK = utility1.getZkCluster();<a name="line.191"></a>
+<span class="sourceLineNo">192</span> // Have to reget conf1 in case zk cluster location different<a name="line.192"></a>
+<span class="sourceLineNo">193</span> // than default<a name="line.193"></a>
+<span class="sourceLineNo">194</span> conf1 = utility1.getConfiguration();<a name="line.194"></a>
+<span class="sourceLineNo">195</span> zkw1 = new ZKWatcher(conf1, "cluster1", null, true);<a name="line.195"></a>
+<span class="sourceLineNo">196</span> admin = new ReplicationAdmin(conf1);<a name="line.196"></a>
+<span class="sourceLineNo">197</span> LOG.info("Setup first Zk");<a name="line.197"></a>
<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span> // Parameter config<a name="line.199"></a>
-<span class="sourceLineNo">200</span> conf1.setBoolean(AbstractFSWALProvider.SEPARATE_OLDLOGDIR, seperateOldWALs);<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span> utility1 = new HBaseTestingUtility(conf1);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> utility1.startMiniZKCluster();<a name="line.203"></a>
-<span class="sourceLineNo">204</span> MiniZooKeeperCluster miniZK = utility1.getZkCluster();<a name="line.204"></a>
-<span class="sourceLineNo">205</span> // Have to reget conf1 in case zk cluster location different<a name="line.205"></a>
-<span class="sourceLineNo">206</span> // than default<a name="line.206"></a>
-<span class="sourceLineNo">207</span> conf1 = utility1.getConfiguration();<a name="line.207"></a>
-<span class="sourceLineNo">208</span> zkw1 = new ZKWatcher(conf1, "cluster1", null, true);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> admin = new ReplicationAdmin(conf1);<a name="line.209"></a>
-<span class="sourceLineNo">210</span> LOG.info("Setup first Zk");<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span> // Base conf2 on conf1 so it gets the right zk cluster.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> conf2 = HBaseConfiguration.create(conf1);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.214"></a>
-<span class="sourceLineNo">215</span> conf2.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);<a name="line.215"></a>
-<span class="sourceLineNo">216</span> conf2.setBoolean("hbase.tests.use.shortcircuit.reads", false);<a name="line.216"></a>
+<span class="sourceLineNo">199</span> // Base conf2 on conf1 so it gets the right zk cluster.<a name="line.199"></a>
+<span class="sourceLineNo">200</span> conf2 = HBaseConfiguration.create(conf1);<a name="line.200"></a>
+<span class="sourceLineNo">201</span> conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.201"></a>
+<span class="sourceLineNo">202</span> conf2.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);<a name="line.202"></a>
+<span class="sourceLineNo">203</span> conf2.setBoolean("hbase.tests.use.shortcircuit.reads", false);<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span> utility2 = new HBaseTestingUtility(conf2);<a name="line.205"></a>
+<span class="sourceLineNo">206</span> utility2.setZkCluster(miniZK);<a name="line.206"></a>
+<span class="sourceLineNo">207</span> zkw2 = new ZKWatcher(conf2, "cluster2", null, true);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> LOG.info("Setup second Zk");<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> CONF_WITH_LOCALFS = HBaseConfiguration.create(conf1);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> utility1.startMiniCluster(2);<a name="line.211"></a>
+<span class="sourceLineNo">212</span> // Have a bunch of slave servers, because inter-cluster shipping logic uses number of sinks<a name="line.212"></a>
+<span class="sourceLineNo">213</span> // as a component in deciding maximum number of parallel batches to send to the peer cluster.<a name="line.213"></a>
+<span class="sourceLineNo">214</span> utility2.startMiniCluster(4);<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span> hbaseAdmin = ConnectionFactory.createConnection(conf1).getAdmin();<a name="line.216"></a>
<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span> utility2 = new HBaseTestingUtility(conf2);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> utility2.setZkCluster(miniZK);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> zkw2 = new ZKWatcher(conf2, "cluster2", null, true);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> LOG.info("Setup second Zk");<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span> CONF_WITH_LOCALFS = HBaseConfiguration.create(conf1);<a name="line.223"></a>
-<span class="sourceLineNo">224</span> utility1.startMiniCluster(2);<a name="line.224"></a>
-<span class="sourceLineNo">225</span> // Have a bunch of slave servers, because inter-cluster shipping logic uses number of sinks<a name="line.225"></a>
-<span class="sourceLineNo">226</span> // as a component in deciding maximum number of parallel batches to send to the peer cluster.<a name="line.226"></a>
-<span class="sourceLineNo">227</span> utility2.startMiniCluster(4);<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span> ReplicationPeerConfig rpc =<a name="line.229"></a>
-<span class="sourceLineNo">230</span> ReplicationPeerConfig.newBuilder().setClusterKey(utility2.getClusterKey()).build();<a name="line.230"></a>
-<span class="sourceLineNo">231</span> hbaseAdmin = ConnectionFactory.createConnection(conf1).getAdmin();<a name="line.231"></a>
-<span class="sourceLineNo">232</span> hbaseAdmin.addReplicationPeer("2", rpc);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span> TableDescriptor table = TableDescriptorBuilder.newBuilder(tableName)<a name="line.234"></a>
-<span class="sourceLineNo">235</span> .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(famName).setMaxVersions(100)<a name="line.235"></a>
-<span class="sourceLineNo">236</span> .setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build())<a name="line.236"></a>
-<span class="sourceLineNo">237</span> .setColumnFamily(ColumnFamilyDescriptorBuilder.of(noRepfamName)).build();<a name="line.237"></a>
-<span class="sourceLineNo">238</span> scopes = new TreeMap<>(Bytes.BYTES_COMPARATOR);<a name="line.238"></a>
-<span class="sourceLineNo">239</span> for (ColumnFamilyDescriptor f : table.getColumnFamilies()) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> scopes.put(f.getName(), f.getScope());<a name="line.240"></a>
-<span class="sourceLineNo">241</span> }<a name="line.241"></a>
-<span class="sourceLineNo">242</span> Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.242"></a>
-<span class="sourceLineNo">243</span> Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.243"></a>
-<span class="sourceLineNo">244</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span> admin1.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.245"></a>
-<span class="sourceLineNo">246</span> }<a name="line.246"></a>
-<span class="sourceLineNo">247</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span> admin2.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.248"></a>
-<span class="sourceLineNo">249</span> }<a name="line.249"></a>
-<span class="sourceLineNo">250</span> utility1.waitUntilAllRegionsAssigned(tableName);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> utility2.waitUntilAllRegionsAssigned(tableName);<a name="line.251"></a>
-<span class="sourceLineNo">252</span> htable1 = connection1.getTable(tableName);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> htable2 = connection2.getTable(tableName);<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> protected static void runSimplePutDeleteTest() throws IOException, InterruptedException {<a name="line.256"></a>
-<span class="sourceLineNo">257</span> Put put = new Put(row);<a name="line.257"></a>
-<span class="sourceLineNo">258</span> put.addColumn(famName, row, row);<a name="line.258"></a>
+<span class="sourceLineNo">218</span> TableDescriptor table = TableDescriptorBuilder.newBuilder(tableName)<a name="line.218"></a>
+<span class="sourceLineNo">219</span> .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(famName).setMaxVersions(100)<a name="line.219"></a>
+<span class="sourceLineNo">220</span> .setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build())<a name="line.220"></a>
+<span class="sourceLineNo">221</span> .setColumnFamily(ColumnFamilyDescriptorBuilder.of(noRepfamName)).build();<a name="line.221"></a>
+<span class="sourceLineNo">222</span> scopes = new TreeMap<>(Bytes.BYTES_COMPARATOR);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> for (ColumnFamilyDescriptor f : table.getColumnFamilies()) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span> scopes.put(f.getName(), f.getScope());<a name="line.224"></a>
+<span class="sourceLineNo">225</span> }<a name="line.225"></a>
+<span class="sourceLineNo">226</span> Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.226"></a>
+<span class="sourceLineNo">227</span> Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.227"></a>
+<span class="sourceLineNo">228</span> try (Admin admin1 = connection1.getAdmin()) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span> admin1.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> }<a name="line.230"></a>
+<span class="sourceLineNo">231</span> try (Admin admin2 = connection2.getAdmin()) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> admin2.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> }<a name="line.233"></a>
+<span class="sourceLineNo">234</span> utility1.waitUntilAllRegionsAssigned(tableName);<a name="line.234"></a>
+<span class="sourceLineNo">235</span> utility2.waitUntilAllRegionsAssigned(tableName);<a name="line.235"></a>
+<span class="sourceLineNo">236</span> htable1 = connection1.getTable(tableName);<a name="line.236"></a>
+<span class="sourceLineNo">237</span> htable2 = connection2.getTable(tableName);<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> private boolean peerExist(String peerId) throws IOException {<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return hbaseAdmin.listReplicationPeers().stream().anyMatch(p -> peerId.equals(p.getPeerId()));<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> @Before<a name="line.244"></a>
+<span class="sourceLineNo">245</span> public void setUpBase() throws IOException {<a name="line.245"></a>
+<span class="sourceLineNo">246</span> if (!peerExist(PEER_ID2)) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> ReplicationPeerConfig rpc = ReplicationPeerConfig.newBuilder()<a name="line.247"></a>
+<span class="sourceLineNo">248</span> .setClusterKey(utility2.getClusterKey()).setSerial(isSerialPeer()).build();<a name="line.248"></a>
+<span class="sourceLineNo">249</span> hbaseAdmin.addReplicationPeer(PEER_ID2, rpc);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span> }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span> @After<a name="line.253"></a>
+<span class="sourceLineNo">254</span> public void tearDownBase() throws IOException {<a name="line.254"></a>
+<span class="sourceLineNo">255</span> if (peerExist(PEER_ID2)) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span> hbaseAdmin.removeReplicationPeer(PEER_ID2);<a name="line.256"></a>
+<span class="sourceLineNo">257</span> }<a name="line.257"></a>
+<span class="sourceLineNo">258</span> }<a name="line.258"></a>
<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span> htable1 = utility1.getConnection().getTable(tableName);<a name="line.260"></a>
-<span class="sourceLineNo">261</span> htable1.put(put);<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span> Get get = new Get(row);<a name="line.263"></a>
-<span class="sourceLineNo">264</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span> if (i == NB_RETRIES - 1) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span> fail("Waited too much time for put replication");<a name="line.266"></a>
-<span class="sourceLineNo">267</span> }<a name="line.267"></a>
-<span class="sourceLineNo">268</span> Result res = htable2.get(get);<a name="line.268"></a>
-<span class="sourceLineNo">269</span> if (res.isEmpty()) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span> LOG.info("Row not available");<a name="line.270"></a>
-<span class="sourceLineNo">271</span> Thread.sleep(SLEEP_TIME);<a name="line.271"></a>
-<span class="sourceLineNo">272</span> } else {<a name="line.272"></a>
-<span class="sourceLineNo">273</span> assertArrayEquals(row, res.value());<a name="line.273"></a>
-<span class="sourceLineNo">274</span> break;<a name="line.274"></a>
-<span class="sourceLineNo">275</span> }<a name="line.275"></a>
-<span class="sourceLineNo">276</span> }<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span> Delete del = new Delete(row);<a name="line.278"></a>
-<span class="sourceLineNo">279</span> htable1.delete(del);<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span> get = new Get(row);<a name="line.281"></a>
-<span class="sourceLineNo">282</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span> if (i == NB_RETRIES - 1) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span> fail("Waited too much time for del replication");<a name="line.284"></a>
-<span class="sourceLineNo">285</span> }<a name="line.285"></a>
-<span class="sourceLineNo">286</span> Result res = htable2.get(get);<a name="line.286"></a>
-<span class="sourceLineNo">287</span> if (res.size() >= 1) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span> LOG.info("Row not deleted");<a name="line.288"></a>
-<span class="sourceLineNo">289</span> Thread.sleep(SLEEP_TIME);<a name="line.289"></a>
-<span class="sourceLineNo">290</span> } else {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> break;<a name="line.291"></a>
-<span class="sourceLineNo">292</span> }<a name="line.292"></a>
-<span class="sourceLineNo">293</span> }<a name="line.293"></a>
-<span class="sourceLineNo">294</span> }<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span> protected static void runSmallBatchTest() throws IOException, InterruptedException {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> // normal Batch tests<a name="line.297"></a>
-<span class="sourceLineNo">298</span> loadData("", row);<a name="line.298"></a>
+<span class="sourceLineNo">260</span> protected static void runSimplePutDeleteTest() throws IOException, InterruptedException {<a name="line.260"></a>
+<span class="sourceLineNo">261</span> Put put = new Put(row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> put.addColumn(famName, row, row);<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span> htable1 = utility1.getConnection().getTable(tableName);<a name="line.264"></a>
+<span class="sourceLineNo">265</span> htable1.put(put);<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span> Get get = new Get(row);<a name="line.267"></a>
+<span class="sourceLineNo">268</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span> if (i == NB_RETRIES - 1) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span> fail("Waited too much time for put replication");<a name="line.270"></a>
+<span class="sourceLineNo">271</span> }<a name="line.271"></a>
+<span class="sourceLineNo">272</span> Result res = htable2.get(get);<a name="line.272"></a>
+<span class="sourceLineNo">273</span> if (res.isEmpty()) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> LOG.info("Row not available");<a name="line.274"></a>
+<span class="sourceLineNo">275</span> Thread.sleep(SLEEP_TIME);<a name="line.275"></a>
+<span class="sourceLineNo">276</span> } else {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> assertArrayEquals(row, res.value());<a name="line.277"></a>
+<span class="sourceLineNo">278</span> break;<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> Delete del = new Delete(row);<a name="line.282"></a>
+<span class="sourceLineNo">283</span> htable1.delete(del);<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> get = new Get(row);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> if (i == NB_RETRIES - 1) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span> fail("Waited too much time for del replication");<a name="line.288"></a>
+<span class="sourceLineNo">289</span> }<a name="line.289"></a>
+<span class="sourceLineNo">290</span> Result res = htable2.get(get);<a name="line.290"></a>
+<span class="sourceLineNo">291</span> if (res.size() >= 1) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span> LOG.info("Row not deleted");<a name="line.292"></a>
+<span class="sourceLineNo">293</span> Thread.sleep(SLEEP_TIME);<a name="line.293"></a>
+<span class="sourceLineNo">294</span> } else {<a name="line.294"></a>
+<span class="sourceLineNo">295</span> break;<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><a name="line.299"></a>
-<span class="sourceLineNo">300</span> Scan scan = new Scan();<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span> ResultScanner scanner1 = htable1.getScanner(scan);<a name="line.302"></a>
-<span class="sourceLineNo">303</span> Result[] res1 = scanner1.next(NB_ROWS_IN_BATCH);<a name="line.303"></a>
-<span class="sourceLineNo">304</span> scanner1.close();<a name="line.304"></a>
-<span class="sourceLineNo">305</span> assertEquals(NB_ROWS_IN_BATCH, res1.length);<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span> waitForReplication(NB_ROWS_IN_BATCH, NB_RETRIES);<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> @AfterClass<a name="line.310"></a>
-<span class="sourceLineNo">311</span> public static void tearDownAfterClass() throws Exception {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> htable2.close();<a name="line.312"></a>
-<span class="sourceLineNo">313</span> htable1.close();<a name="line.313"></a>
-<span class="sourceLineNo">314</span> admin.close();<a name="line.314"></a>
-<span class="sourceLineNo">315</span> utility2.shutdownMiniCluster();<a name="line.315"></a>
-<span class="sourceLineNo">316</span> utility1.shutdownMiniCluster();<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">300</span> protected static void runSmallBatchTest() throws IOException, InterruptedException {<a name="line.300"></a>
+<span class="sourceLineNo">301</span> // normal Batch tests<a name="line.301"></a>
+<span class="sourceLineNo">302</span> loadData("", row);<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span> Scan scan = new Scan();<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span> ResultScanner scanner1 = htable1.getScanner(scan);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> Result[] res1 = scanner1.next(NB_ROWS_IN_BATCH);<a name="line.307"></a>
+<span class="sourceLineNo">308</span> scanner1.close();<a name="line.308"></a>
+<span class="sourceLineNo">309</span> assertEquals(NB_ROWS_IN_BATCH, res1.length);<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span> waitForReplication(NB_ROWS_IN_BATCH, NB_RETRIES);<a name="line.311"></a>
+<span class="sourceLineNo">312</span> }<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span> @AfterClass<a name="line.314"></a>
+<span class="sourceLineNo">315</span> public static void tearDownAfterClass() throws Exception {<a name="line.315"></a>
+<span class="sourceLineNo">316</span> htable2.close();<a name="line.316"></a>
+<span class="sourceLineNo">317</span> htable1.close();<a name="line.317"></a>
+<span class="sourceLineNo">318</span> admin.close();<a name="line.318"></a>
+<span class="sourceLineNo">319</span> utility2.shutdownMiniCluster();<a name="line.319"></a>
+<span class="sourceLineNo">320</span> utility1.shutdownMiniCluster();<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>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
index 06c8213..8421b5f 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
@@ -30,129 +30,149 @@
<span class="sourceLineNo">022</span>import static org.junit.Assert.fail;<a name="line.22"></a>
<span class="sourceLineNo">023</span><a name="line.23"></a>
<span class="sourceLineNo">024</span>import java.io.IOException;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.MiniHBaseCluster;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.client.Get;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.client.Put;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.client.Result;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.util.JVMClusterUtil;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.Before;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.ClassRule;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.Test;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.junit.experimental.categories.Category;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.slf4j.Logger;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.slf4j.LoggerFactory;<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>/**<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * Test handling of changes to the number of a peer's regionservers.<a name="line.44"></a>
-<span class="sourceLineNo">045</span> */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>@Category({ReplicationTests.class, LargeTests.class})<a name="line.46"></a>
-<span class="sourceLineNo">047</span>public class TestReplicationChangingPeerRegionservers extends TestReplicationBase {<a name="line.47"></a>
+<span class="sourceLineNo">025</span>import java.util.List;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.MiniHBaseCluster;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.client.Get;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.Put;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Result;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.util.JVMClusterUtil;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.Before;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.ClassRule;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.Test;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.experimental.categories.Category;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.junit.runner.RunWith;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.junit.runners.Parameterized;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.junit.runners.Parameterized.Parameter;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.junit.runners.Parameterized.Parameters;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.slf4j.Logger;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.slf4j.LoggerFactory;<a name="line.47"></a>
<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span> @ClassRule<a name="line.49"></a>
-<span class="sourceLineNo">050</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.50"></a>
-<span class="sourceLineNo">051</span> HBaseClassTestRule.forClass(TestReplicationChangingPeerRegionservers.class);<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span> private static final Logger LOG =<a name="line.53"></a>
-<span class="sourceLineNo">054</span> LoggerFactory.getLogger(TestReplicationChangingPeerRegionservers.class);<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span> /**<a name="line.56"></a>
-<span class="sourceLineNo">057</span> * @throws java.lang.Exception<a name="line.57"></a>
-<span class="sourceLineNo">058</span> */<a name="line.58"></a>
-<span class="sourceLineNo">059</span> @Before<a name="line.59"></a>
-<span class="sourceLineNo">060</span> public void setUp() throws Exception {<a name="line.60"></a>
-<span class="sourceLineNo">061</span> // Starting and stopping replication can make us miss new logs,<a name="line.61"></a>
-<span class="sourceLineNo">062</span> // rolling like this makes sure the most recent one gets added to the queue<a name="line.62"></a>
-<span class="sourceLineNo">063</span> for (JVMClusterUtil.RegionServerThread r :<a name="line.63"></a>
-<span class="sourceLineNo">064</span> utility1.getHBaseCluster().getRegionServerThreads()) {<a name="line.64"></a>
-<span class="sourceLineNo">065</span> utility1.getAdmin().rollWALWriter(r.getRegionServer().getServerName());<a name="line.65"></a>
-<span class="sourceLineNo">066</span> }<a name="line.66"></a>
-<span class="sourceLineNo">067</span> utility1.deleteTableData(tableName);<a name="line.67"></a>
-<span class="sourceLineNo">068</span> // truncating the table will send one Delete per row to the slave cluster<a name="line.68"></a>
-<span class="sourceLineNo">069</span> // in an async fashion, which is why we cannot just call deleteTableData on<a name="line.69"></a>
-<span class="sourceLineNo">070</span> // utility2 since late writes could make it to the slave in some way.<a name="line.70"></a>
-<span class="sourceLineNo">071</span> // Instead, we truncate the first table and wait for all the Deletes to<a name="line.71"></a>
-<span class="sourceLineNo">072</span> // make it to the slave.<a name="line.72"></a>
-<span class="sourceLineNo">073</span> Scan scan = new Scan();<a name="line.73"></a>
-<span class="sourceLineNo">074</span> int lastCount = 0;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.75"></a>
-<span class="sourceLineNo">076</span> if (i == NB_RETRIES - 1) {<a name="line.76"></a>
-<span class="sourceLineNo">077</span> fail("Waited too much time for truncate");<a name="line.77"></a>
-<span class="sourceLineNo">078</span> }<a name="line.78"></a>
-<span class="sourceLineNo">079</span> ResultScanner scanner = htable2.getScanner(scan);<a name="line.79"></a>
-<span class="sourceLineNo">080</span> Result[] res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.80"></a>
-<span class="sourceLineNo">081</span> scanner.close();<a name="line.81"></a>
-<span class="sourceLineNo">082</span> if (res.length != 0) {<a name="line.82"></a>
-<span class="sourceLineNo">083</span> if (res.length < lastCount) {<a name="line.83"></a>
-<span class="sourceLineNo">084</span> i--; // Don't increment timeout if we make progress<a name="line.84"></a>
-<span class="sourceLineNo">085</span> }<a name="line.85"></a>
-<span class="sourceLineNo">086</span> lastCount = res.length;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> LOG.info("Still got " + res.length + " rows");<a name="line.87"></a>
-<span class="sourceLineNo">088</span> Thread.sleep(SLEEP_TIME);<a name="line.88"></a>
-<span class="sourceLineNo">089</span> } else {<a name="line.89"></a>
-<span class="sourceLineNo">090</span> break;<a name="line.90"></a>
-<span class="sourceLineNo">091</span> }<a name="line.91"></a>
-<span class="sourceLineNo">092</span> }<a name="line.92"></a>
-<span class="sourceLineNo">093</span> }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span> @Test<a name="line.95"></a>
-<span class="sourceLineNo">096</span> public void testChangingNumberOfPeerRegionServers() throws IOException, InterruptedException {<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span> LOG.info("testSimplePutDelete");<a name="line.98"></a>
-<span class="sourceLineNo">099</span> MiniHBaseCluster peerCluster = utility2.getMiniHBaseCluster();<a name="line.99"></a>
-<span class="sourceLineNo">100</span> int numRS = peerCluster.getRegionServerThreads().size();<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span> doPutTest(Bytes.toBytes(1));<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span> int rsToStop = peerCluster.getServerWithMeta() == 0 ? 1 : 0;<a name="line.104"></a>
-<span class="sourceLineNo">105</span> peerCluster.stopRegionServer(rsToStop);<a name="line.105"></a>
-<span class="sourceLineNo">106</span> peerCluster.waitOnRegionServer(rsToStop);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span> // Sanity check<a name="line.108"></a>
-<span class="sourceLineNo">109</span> assertEquals(numRS - 1, peerCluster.getRegionServerThreads().size());<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span> doPutTest(Bytes.toBytes(2));<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span> peerCluster.startRegionServer();<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span> // Sanity check<a name="line.115"></a>
-<span class="sourceLineNo">116</span> assertEquals(numRS, peerCluster.getRegionServerThreads().size());<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span> doPutTest(Bytes.toBytes(3));<a name="line.118"></a>
-<span class="sourceLineNo">119</span><a name="line.119"></a>
-<span class="sourceLineNo">120</span> }<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span> private void doPutTest(byte[] row) throws IOException, InterruptedException {<a name="line.122"></a>
-<span class="sourceLineNo">123</span> Put put = new Put(row);<a name="line.123"></a>
-<span class="sourceLineNo">124</span> put.addColumn(famName, row, row);<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span> if (htable1 == null) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span> htable1 = utility1.getConnection().getTable(tableName);<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> htable1.put(put);<a name="line.130"></a>
+<span class="sourceLineNo">049</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableList;<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> * Test handling of changes to the number of a peer's regionservers.<a name="line.52"></a>
+<span class="sourceLineNo">053</span> */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>@RunWith(Parameterized.class)<a name="line.54"></a>
+<span class="sourceLineNo">055</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.55"></a>
+<span class="sourceLineNo">056</span>public class TestReplicationChangingPeerRegionservers extends TestReplicationBase {<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span> @ClassRule<a name="line.58"></a>
+<span class="sourceLineNo">059</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.59"></a>
+<span class="sourceLineNo">060</span> HBaseClassTestRule.forClass(TestReplicationChangingPeerRegionservers.class);<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span> private static final Logger LOG =<a name="line.62"></a>
+<span class="sourceLineNo">063</span> LoggerFactory.getLogger(TestReplicationChangingPeerRegionservers.class);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span> @Parameter<a name="line.65"></a>
+<span class="sourceLineNo">066</span> public boolean serialPeer;<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span> @Override<a name="line.68"></a>
+<span class="sourceLineNo">069</span> protected boolean isSerialPeer() {<a name="line.69"></a>
+<span class="sourceLineNo">070</span> return serialPeer;<a name="line.70"></a>
+<span class="sourceLineNo">071</span> }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span> @Parameters(name = "{index}: serialPeer={0}")<a name="line.73"></a>
+<span class="sourceLineNo">074</span> public static List<Boolean> parameters() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span> return ImmutableList.of(true, false);<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> /**<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * @throws java.lang.Exception<a name="line.79"></a>
+<span class="sourceLineNo">080</span> */<a name="line.80"></a>
+<span class="sourceLineNo">081</span> @Before<a name="line.81"></a>
+<span class="sourceLineNo">082</span> public void setUp() throws Exception {<a name="line.82"></a>
+<span class="sourceLineNo">083</span> // Starting and stopping replication can make us miss new logs,<a name="line.83"></a>
+<span class="sourceLineNo">084</span> // rolling like this makes sure the most recent one gets added to the queue<a name="line.84"></a>
+<span class="sourceLineNo">085</span> for (JVMClusterUtil.RegionServerThread r : utility1.getHBaseCluster()<a name="line.85"></a>
+<span class="sourceLineNo">086</span> .getRegionServerThreads()) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span> utility1.getAdmin().rollWALWriter(r.getRegionServer().getServerName());<a name="line.87"></a>
+<span class="sourceLineNo">088</span> }<a name="line.88"></a>
+<span class="sourceLineNo">089</span> utility1.deleteTableData(tableName);<a name="line.89"></a>
+<span class="sourceLineNo">090</span> // truncating the table will send one Delete per row to the slave cluster<a name="line.90"></a>
+<span class="sourceLineNo">091</span> // in an async fashion, which is why we cannot just call deleteTableData on<a name="line.91"></a>
+<span class="sourceLineNo">092</span> // utility2 since late writes could make it to the slave in some way.<a name="line.92"></a>
+<span class="sourceLineNo">093</span> // Instead, we truncate the first table and wait for all the Deletes to<a name="line.93"></a>
+<span class="sourceLineNo">094</span> // make it to the slave.<a name="line.94"></a>
+<span class="sourceLineNo">095</span> Scan scan = new Scan();<a name="line.95"></a>
+<span class="sourceLineNo">096</span> int lastCount = 0;<a name="line.96"></a>
+<span class="sourceLineNo">097</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span> if (i == NB_RETRIES - 1) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span> fail("Waited too much time for truncate");<a name="line.99"></a>
+<span class="sourceLineNo">100</span> }<a name="line.100"></a>
+<span class="sourceLineNo">101</span> ResultScanner scanner = htable2.getScanner(scan);<a name="line.101"></a>
+<span class="sourceLineNo">102</span> Result[] res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.102"></a>
+<span class="sourceLineNo">103</span> scanner.close();<a name="line.103"></a>
+<span class="sourceLineNo">104</span> if (res.length != 0) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> if (res.length < lastCount) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span> i--; // Don't increment timeout if we make progress<a name="line.106"></a>
+<span class="sourceLineNo">107</span> }<a name="line.107"></a>
+<span class="sourceLineNo">108</span> lastCount = res.length;<a name="line.108"></a>
+<span class="sourceLineNo">109</span> LOG.info("Still got " + res.length + " rows");<a name="line.109"></a>
+<span class="sourceLineNo">110</span> Thread.sleep(SLEEP_TIME);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> } else {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> break;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> }<a name="line.113"></a>
+<span class="sourceLineNo">114</span> }<a name="line.114"></a>
+<span class="sourceLineNo">115</span> }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span> @Test<a name="line.117"></a>
+<span class="sourceLineNo">118</span> public void testChangingNumberOfPeerRegionServers() throws IOException, InterruptedException {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> LOG.info("testSimplePutDelete");<a name="line.119"></a>
+<span class="sourceLineNo">120</span> MiniHBaseCluster peerCluster = utility2.getMiniHBaseCluster();<a name="line.120"></a>
+<span class="sourceLineNo">121</span> int numRS = peerCluster.getRegionServerThreads().size();<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span> doPutTest(Bytes.toBytes(1));<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span> int rsToStop = peerCluster.getServerWithMeta() == 0 ? 1 : 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span> peerCluster.stopRegionServer(rsToStop);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> peerCluster.waitOnRegionServer(rsToStop);<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span> // Sanity check<a name="line.129"></a>
+<span class="sourceLineNo">130</span> assertEquals(numRS - 1, peerCluster.getRegionServerThreads().size());<a name="line.130"></a>
<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span> Get get = new Get(row);<a name="line.132"></a>
-<span class="sourceLineNo">133</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span> if (i == NB_RETRIES - 1) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span> fail("Waited too much time for put replication");<a name="line.135"></a>
-<span class="sourceLineNo">136</span> }<a name="line.136"></a>
-<span class="sourceLineNo">137</span> Result res = htable2.get(get);<a name="line.137"></a>
-<span class="sourceLineNo">138</span> if (res.isEmpty()) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span> LOG.info("Row not available");<a name="line.139"></a>
-<span class="sourceLineNo">140</span> Thread.sleep(SLEEP_TIME);<a name="line.140"></a>
-<span class="sourceLineNo">141</span> } else {<a name="line.141"></a>
-<span class="sourceLineNo">142</span> assertArrayEquals(res.value(), row);<a name="line.142"></a>
-<span class="sourceLineNo">143</span> break;<a name="line.143"></a>
-<span class="sourceLineNo">144</span> }<a name="line.144"></a>
-<span class="sourceLineNo">145</span> }<a name="line.145"></a>
-<span class="sourceLineNo">146</span> }<a name="line.146"></a>
-<span class="sourceLineNo">147</span>}<a name="line.147"></a>
+<span class="sourceLineNo">132</span> doPutTest(Bytes.toBytes(2));<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span> peerCluster.startRegionServer();<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> // Sanity check<a name="line.136"></a>
+<span class="sourceLineNo">137</span> assertEquals(numRS, peerCluster.getRegionServerThreads().size());<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span> doPutTest(Bytes.toBytes(3));<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> private void doPutTest(byte[] row) throws IOException, InterruptedException {<a name="line.142"></a>
+<span class="sourceLineNo">143</span> Put put = new Put(row);<a name="line.143"></a>
+<span class="sourceLineNo">144</span> put.addColumn(famName, row, row);<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span> if (htable1 == null) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span> htable1 = utility1.getConnection().getTable(tableName);<a name="line.147"></a>
+<span class="sourceLineNo">148</span> }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> htable1.put(put);<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> Get get = new Get(row);<a name="line.152"></a>
+<span class="sourceLineNo">153</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span> if (i == NB_RETRIES - 1) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span> fail("Waited too much time for put replication");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> }<a name="line.156"></a>
+<span class="sourceLineNo">157</span> Result res = htable2.get(get);<a name="line.157"></a>
+<span class="sourceLineNo">158</span> if (res.isEmpty()) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span> LOG.info("Row not available");<a name="line.159"></a>
+<span class="sourceLineNo">160</span> Thread.sleep(SLEEP_TIME);<a name="line.160"></a>
+<span class="sourceLineNo">161</span> } else {<a name="line.161"></a>
+<span class="sourceLineNo">162</span> assertArrayEquals(res.value(), row);<a name="line.162"></a>
+<span class="sourceLineNo">163</span> break;<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> }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>}<a name="line.167"></a>
[35/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.
Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/a610f23a
Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/a610f23a
Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/a610f23a
Branch: refs/heads/asf-site
Commit: a610f23a90053baee65ae53ad3c447b4adf77e20
Parents: 5a9aefd
Author: jenkins <bu...@apache.org>
Authored: Tue Apr 17 14:46:24 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Tue Apr 17 14:46:24 2018 +0000
----------------------------------------------------------------------
acid-semantics.html | 4 +-
apache_hbase_reference_guide.pdf | 4 +-
apidocs/allclasses-frame.html | 2 +
apidocs/allclasses-noframe.html | 2 +
apidocs/deprecated-list.html | 5 +
apidocs/index-all.html | 77 +-
.../apache/hadoop/hbase/HBaseIOException.html | 2 +-
.../hbase/class-use/DoNotRetryIOException.html | 4 +-
.../hbase/class-use/HBaseIOException.html | 12 +-
.../apache/hadoop/hbase/quotas/QuotaType.html | 4 +-
.../quotas/RpcThrottlingException.Type.html | 395 +++++++++
.../hbase/quotas/RpcThrottlingException.html | 467 ++++++++++
.../hbase/quotas/SpaceLimitingException.html | 4 +-
.../hbase/quotas/ThrottlingException.Type.html | 18 +-
.../hbase/quotas/ThrottlingException.html | 95 +-
.../class-use/QuotaExceededException.html | 4 +-
.../class-use/RpcThrottlingException.Type.html | 191 ++++
.../class-use/RpcThrottlingException.html | 185 ++++
.../class-use/ThrottlingException.Type.html | 8 +-
.../quotas/class-use/ThrottlingException.html | 24 +-
.../hadoop/hbase/quotas/package-frame.html | 2 +
.../hadoop/hbase/quotas/package-summary.html | 20 +-
.../hadoop/hbase/quotas/package-tree.html | 2 +
.../apache/hadoop/hbase/quotas/package-use.html | 16 +-
apidocs/overview-tree.html | 2 +
apidocs/serialized-form.html | 22 +
.../quotas/RpcThrottlingException.Type.html | 203 +++++
.../hbase/quotas/RpcThrottlingException.html | 203 +++++
.../hbase/quotas/ThrottlingException.Type.html | 275 +++---
.../hbase/quotas/ThrottlingException.html | 275 +++---
book.html | 2 +-
bulk-loads.html | 4 +-
checkstyle-aggregate.html | 96 +-
checkstyle.rss | 48 +-
coc.html | 4 +-
dependencies.html | 4 +-
dependency-convergence.html | 4 +-
dependency-info.html | 4 +-
dependency-management.html | 4 +-
devapidocs/allclasses-frame.html | 2 +
devapidocs/allclasses-noframe.html | 2 +
devapidocs/constant-values.html | 25 +-
devapidocs/deprecated-list.html | 5 +
devapidocs/index-all.html | 125 ++-
.../apache/hadoop/hbase/HBaseIOException.html | 2 +-
.../hadoop/hbase/backup/package-tree.html | 4 +-
.../hbase/class-use/DoNotRetryIOException.html | 4 +-
.../hbase/class-use/HBaseIOException.html | 12 +-
.../hadoop/hbase/client/package-tree.html | 22 +-
.../hbase/exceptions/ClientExceptionsUtil.html | 4 +-
.../hadoop/hbase/filter/package-tree.html | 6 +-
.../hadoop/hbase/io/hfile/package-tree.html | 4 +-
.../apache/hadoop/hbase/ipc/package-tree.html | 2 +-
.../hadoop/hbase/mapreduce/package-tree.html | 2 +-
.../hadoop/hbase/master/package-tree.html | 4 +-
.../hbase/master/procedure/package-tree.html | 4 +-
.../org/apache/hadoop/hbase/package-tree.html | 16 +-
.../hadoop/hbase/procedure2/package-tree.html | 6 +-
.../hbase/quotas/DefaultOperationQuota.html | 5 +-
.../hadoop/hbase/quotas/NoopOperationQuota.html | 5 +-
.../hadoop/hbase/quotas/NoopQuotaLimiter.html | 4 +-
.../hadoop/hbase/quotas/OperationQuota.html | 19 +-
.../hadoop/hbase/quotas/QuotaLimiter.html | 4 +-
.../quotas/RegionServerRpcQuotaManager.html | 12 +-
.../hbase/quotas/RegionSizeStoreImpl.html | 4 +-
.../quotas/RpcThrottlingException.Type.html | 395 +++++++++
.../hbase/quotas/RpcThrottlingException.html | 579 +++++++++++++
.../quotas/SnapshotQuotaObserverChore.html | 4 +-
.../hbase/quotas/ThrottlingException.Type.html | 18 +-
.../hbase/quotas/ThrottlingException.html | 144 ++-
.../hadoop/hbase/quotas/TimeBasedLimiter.html | 4 +-
.../class-use/QuotaExceededException.html | 4 +-
.../class-use/RpcThrottlingException.Type.html | 218 +++++
.../class-use/RpcThrottlingException.html | 250 ++++++
.../class-use/ThrottlingException.Type.html | 16 +-
.../quotas/class-use/ThrottlingException.html | 92 +-
.../hadoop/hbase/quotas/package-frame.html | 2 +
.../hadoop/hbase/quotas/package-summary.html | 20 +-
.../hadoop/hbase/quotas/package-tree.html | 8 +-
.../apache/hadoop/hbase/quotas/package-use.html | 16 +-
.../hadoop/hbase/regionserver/package-tree.html | 12 +-
.../regionserver/querymatcher/package-tree.html | 2 +-
.../hbase/security/access/package-tree.html | 2 +-
.../hadoop/hbase/thrift/package-tree.html | 4 +-
.../apache/hadoop/hbase/util/package-tree.html | 8 +-
devapidocs/overview-tree.html | 2 +
devapidocs/serialized-form.html | 22 +
.../org/apache/hadoop/hbase/Version.html | 6 +-
.../hbase/exceptions/ClientExceptionsUtil.html | 6 +-
.../hbase/quotas/DefaultOperationQuota.html | 2 +-
.../hadoop/hbase/quotas/NoopOperationQuota.html | 2 +-
.../hadoop/hbase/quotas/NoopQuotaLimiter.html | 2 +-
.../quotas/OperationQuota.OperationType.html | 65 +-
.../hadoop/hbase/quotas/OperationQuota.html | 65 +-
.../hadoop/hbase/quotas/QuotaLimiter.html | 4 +-
.../quotas/RegionServerRpcQuotaManager.html | 14 +-
.../quotas/RpcThrottlingException.Type.html | 203 +++++
.../hbase/quotas/RpcThrottlingException.html | 203 +++++
.../hbase/quotas/ThrottlingException.Type.html | 275 +++---
.../hbase/quotas/ThrottlingException.html | 275 +++---
.../hadoop/hbase/quotas/TimeBasedLimiter.html | 14 +-
export_control.html | 4 +-
index.html | 4 +-
integration.html | 4 +-
issue-tracking.html | 4 +-
license.html | 4 +-
mail-lists.html | 4 +-
metrics.html | 4 +-
old_news.html | 4 +-
plugin-management.html | 4 +-
plugins.html | 4 +-
poweredbyhbase.html | 4 +-
project-info.html | 4 +-
project-reports.html | 4 +-
project-summary.html | 4 +-
pseudo-distributed.html | 4 +-
replication.html | 4 +-
resources.html | 4 +-
source-repository.html | 4 +-
sponsors.html | 4 +-
supportingprojects.html | 4 +-
team-list.html | 4 +-
testdevapidocs/allclasses-frame.html | 2 +
testdevapidocs/allclasses-noframe.html | 2 +
testdevapidocs/constant-values.html | 7 +
testdevapidocs/index-all.html | 56 +-
.../hbase/class-use/HBaseClassTestRule.html | 10 +-
...usters.TestUpdatableReplicationEndpoint.html | 22 +-
.../TestReplicationAdminWithClusters.html | 24 +-
.../hadoop/hbase/io/hfile/package-tree.html | 2 +-
.../org/apache/hadoop/hbase/package-tree.html | 10 +-
.../hadoop/hbase/procedure/package-tree.html | 8 +-
.../hadoop/hbase/procedure2/package-tree.html | 2 +-
.../hadoop/hbase/quotas/TestQuotaAdmin.html | 62 +-
.../hadoop/hbase/regionserver/package-tree.html | 4 +-
.../replication/TestNamespaceReplication.html | 105 ++-
.../hbase/replication/TestReplicationBase.html | 158 ++--
...estReplicationChangingPeerRegionservers.html | 71 +-
.../TestReplicationDisableInactivePeer.html | 4 +-
.../TestReplicationDroppedTables.html | 12 +-
.../TestReplicationEmptyWALRecovery.html | 4 +-
...Endpoint.EverythingPassesWALEntryFilter.html | 10 +-
....EverythingPassesWALEntryFilterSubclass.html | 4 +-
...licationEndpointForTest.DummyReplicator.html | 8 +-
...nEndpointForTest.FailingDummyReplicator.html | 6 +-
....InterClusterReplicationEndpointForTest.html | 6 +-
...tionEndpoint.ReplicationEndpointForTest.html | 16 +-
...point.ReplicationEndpointReturningFalse.html | 12 +-
...t.ReplicationEndpointWithWALEntryFilter.html | 10 +-
.../replication/TestReplicationEndpoint.html | 28 +-
.../TestReplicationKillMasterRS.html | 12 +-
.../TestReplicationKillMasterRSCompressed.html | 8 +-
...licationKillMasterRSWithSeparateOldWALs.html | 362 ++++++++
.../replication/TestReplicationKillRS.html | 10 +-
.../replication/TestReplicationKillSlaveRS.html | 16 +-
...plicationKillSlaveRSWithSeparateOldWALs.html | 362 ++++++++
.../replication/TestReplicationPeerConfig.html | 4 +-
.../replication/TestReplicationSmallTests.html | 99 ++-
.../replication/TestReplicationStatus.html | 4 +-
.../replication/TestReplicationSyncUpTool.html | 74 +-
...ReplicationSyncUpToolWithBulkLoadedData.html | 6 +-
.../replication/TestVerifyReplication.html | 4 +-
.../class-use/TestReplicationBase.html | 10 +-
...licationKillMasterRSWithSeparateOldWALs.html | 125 +++
.../class-use/TestReplicationKillRS.html | 8 +
...plicationKillSlaveRSWithSeparateOldWALs.html | 125 +++
...ReplicationEndpointWithMultipleAsyncWAL.html | 4 +-
.../TestReplicationEndpointWithMultipleWAL.html | 4 +-
...lMasterRSCompressedWithMultipleAsyncWAL.html | 4 +-
...onKillMasterRSCompressedWithMultipleWAL.html | 4 +-
...plicationSyncUpToolWithMultipleAsyncWAL.html | 6 +-
...estReplicationSyncUpToolWithMultipleWAL.html | 6 +-
.../hadoop/hbase/replication/package-frame.html | 2 +
.../hbase/replication/package-summary.html | 10 +-
.../hadoop/hbase/replication/package-tree.html | 2 +
.../regionserver/TestReplicator.html | 4 +-
.../apache/hadoop/hbase/test/package-tree.html | 4 +-
...Utils.IsFileClosedDistributedFileSystem.html | 6 +-
testdevapidocs/overview-tree.html | 2 +
testdevapidocs/serialized-form.html | 22 +
...aCache.CallQueueTooBigExceptionInjector.html | 14 +-
.../client/TestMetaCache.ExceptionInjector.html | 14 +-
.../client/TestMetaCache.FakeRSRpcServices.html | 14 +-
...taCache.RegionServerWithFakeRpcServices.html | 14 +-
...stMetaCache.RoundRobinExceptionInjector.html | 14 +-
.../hadoop/hbase/client/TestMetaCache.html | 14 +-
...usters.TestUpdatableReplicationEndpoint.html | 408 ++++-----
.../TestReplicationAdminWithClusters.html | 408 ++++-----
.../hadoop/hbase/quotas/TestQuotaAdmin.html | 866 ++++++++++---------
.../hadoop/hbase/quotas/TestQuotaState.html | 4 +-
.../hadoop/hbase/quotas/TestQuotaThrottle.html | 4 +-
...estMasterReplication.CoprocessorCounter.html | 2 +-
.../replication/TestMasterReplication.html | 2 +-
.../replication/TestMultiSlaveReplication.html | 2 +-
.../replication/TestNamespaceReplication.html | 406 ++++-----
.../hbase/replication/TestReplicationBase.html | 570 ++++++------
...estReplicationChangingPeerRegionservers.html | 262 +++---
.../TestReplicationDroppedTables.html | 350 ++++----
...Endpoint.EverythingPassesWALEntryFilter.html | 858 +++++++++---------
....EverythingPassesWALEntryFilterSubclass.html | 858 +++++++++---------
...licationEndpointForTest.DummyReplicator.html | 858 +++++++++---------
...nEndpointForTest.FailingDummyReplicator.html | 858 +++++++++---------
....InterClusterReplicationEndpointForTest.html | 858 +++++++++---------
...tionEndpoint.ReplicationEndpointForTest.html | 858 +++++++++---------
...point.ReplicationEndpointReturningFalse.html | 858 +++++++++---------
...t.ReplicationEndpointWithWALEntryFilter.html | 858 +++++++++---------
.../replication/TestReplicationEndpoint.html | 858 +++++++++---------
.../TestReplicationKillMasterRS.html | 38 +-
.../TestReplicationKillMasterRSCompressed.html | 2 +-
...licationKillMasterRSWithSeparateOldWALs.html | 119 +++
.../replication/TestReplicationKillSlaveRS.html | 37 +-
...plicationKillSlaveRSWithSeparateOldWALs.html | 119 +++
.../replication/TestReplicationSmallTests.html | 752 ++++++++--------
.../replication/TestReplicationSyncUpTool.html | 777 ++++++++---------
...Utils.IsFileClosedDistributedFileSystem.html | 50 +-
.../hadoop/hbase/util/TestFSHDFSUtils.html | 50 +-
216 files changed, 13345 insertions(+), 7706 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 5f956f4..9a79ccf 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Apache HBase (TM) ACID Properties
@@ -601,7 +601,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 8fa20c9..4618f1e 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
/Author (Apache HBase Team)
/Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
/Producer (Apache HBase Team)
-/ModDate (D:20180416144427+00'00')
-/CreationDate (D:20180416144427+00'00')
+/ModDate (D:20180417144434+00'00')
+/CreationDate (D:20180417144434+00'00')
>>
endobj
2 0 obj
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/apidocs/allclasses-frame.html b/apidocs/allclasses-frame.html
index 26cce85..02e4170 100644
--- a/apidocs/allclasses-frame.html
+++ b/apidocs/allclasses-frame.html
@@ -311,6 +311,8 @@
<li><a href="org/apache/hadoop/hbase/client/RowTooBigException.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">RowTooBigException</a></li>
<li><a href="org/apache/hadoop/hbase/regionserver/RowTooBigException.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RowTooBigException</a></li>
<li><a href="org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="interface in org.apache.hadoop.hbase.client" target="classFrame"><span class="interfaceName">RpcRetryingCaller</span></a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException</a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException.Type</a></li>
<li><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup" target="classFrame">RSGroupInfo</a></li>
<li><a href="org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">Scan</a></li>
<li><a href="org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client" target="classFrame">Scan.ReadType</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/apidocs/allclasses-noframe.html b/apidocs/allclasses-noframe.html
index 8962a0b..2bd2ac8 100644
--- a/apidocs/allclasses-noframe.html
+++ b/apidocs/allclasses-noframe.html
@@ -311,6 +311,8 @@
<li><a href="org/apache/hadoop/hbase/client/RowTooBigException.html" title="class in org.apache.hadoop.hbase.client">RowTooBigException</a></li>
<li><a href="org/apache/hadoop/hbase/regionserver/RowTooBigException.html" title="class in org.apache.hadoop.hbase.regionserver">RowTooBigException</a></li>
<li><a href="org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="interface in org.apache.hadoop.hbase.client"><span class="interfaceName">RpcRetryingCaller</span></a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></li>
<li><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a></li>
<li><a href="org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></li>
<li><a href="org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/deprecated-list.html
----------------------------------------------------------------------
diff --git a/apidocs/deprecated-list.html b/apidocs/deprecated-list.html
index d72d340..6463414 100644
--- a/apidocs/deprecated-list.html
+++ b/apidocs/deprecated-list.html
@@ -192,6 +192,11 @@
<div class="block"><span class="deprecationComment">use <a href="org/apache/hadoop/hbase/client/RowTooBigException.html" title="class in org.apache.hadoop.hbase.client"><code>RowTooBigException</code></a> instead.</span></div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.ThrottlingException</a>
+<div class="block"><span class="deprecationComment">replaced by <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</td>
+</tr>
</tbody>
</table>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index cc74120..9a3be99 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -5771,7 +5771,9 @@
<div class="block">Unlimited time-to-live.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#foundColumn">foundColumn</a></span> - Variable in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html" title="class in org.apache.hadoop.hbase.filter">SingleColumnValueFilter</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ByteRangeUtils.html#fromArrays-java.util.Collection-">fromArrays(Collection<byte[]>)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteRangeUtils.html" title="class in org.apache.hadoop.hbase.util">ByteRangeUtils</a></dt>
@@ -9070,8 +9072,12 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SnapshotDescription.html#getType--">getType()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/Cell.html#getTypeByte--">getTypeByte()</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></dt>
<dd>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -9239,8 +9245,12 @@
<dd>
<div class="block">Retrieve the next long value, which is stored as VLong, from this range</div>
</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/BufferedMutator.html#getWriteBufferPeriodicFlushTimeoutMs--">getWriteBufferPeriodicFlushTimeoutMs()</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/BufferedMutator.html" title="interface in org.apache.hadoop.hbase.client">BufferedMutator</a></dt>
<dd>
<div class="block">Returns the current periodic flush timeout value in milliseconds.</div>
@@ -15439,6 +15449,16 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</dd>
<dt><a href="org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">RpcRetryingCaller</span></a><<a href="org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="type parameter in RpcRetryingCaller">T</a>> - Interface in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a> - Exception in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
+<dd>
+<div class="block">Describe the throttling result.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-java.lang.String-">RpcThrottlingException(String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException(RpcThrottlingException.Type, long, String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a> - Enum in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/BufferedMutatorParams.html#rpcTimeout-int-">rpcTimeout(int)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/BufferedMutatorParams.html" title="class in org.apache.hadoop.hbase.client">BufferedMutatorParams</a></dt>
<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfo</span></a> - Class in <a href="org/apache/hadoop/hbase/rsgroup/package-summary.html">org.apache.hadoop.hbase.rsgroup</a></dt>
@@ -18397,26 +18417,58 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</dd>
<dt><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException</span></a> - Exception in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
<dd>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException(String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException(ThrottlingException.Type, long, String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a> - Enum in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd> </dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+ </dd>
<dt><a href="org/apache/hadoop/hbase/errorhandling/TimeoutException.html" title="class in org.apache.hadoop.hbase.errorhandling"><span class="typeNameLink">TimeoutException</span></a> - Exception in <a href="org/apache/hadoop/hbase/errorhandling/package-summary.html">org.apache.hadoop.hbase.errorhandling</a></dt>
<dd>
<div class="block">Exception for timeout of a task.</div>
@@ -19480,6 +19532,10 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<dd>
<div class="block">Returns the enum constant of this type with the specified name.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></dt>
<dd>
<div class="block">Returns the enum constant of this type with the specified name.</div>
@@ -19490,6 +19546,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Returns the enum constant of this type with the specified name.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/BloomType.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver">BloomType</a></dt>
@@ -19638,6 +19695,11 @@ the order they are declared.</div>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></dt>
<dd>
<div class="block">Returns an array containing the constants of this enum type, in
@@ -19650,6 +19712,7 @@ the order they are declared.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared.</div>
</dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/HBaseIOException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/HBaseIOException.html b/apidocs/org/apache/hadoop/hbase/HBaseIOException.html
index b04bef5..f47795d 100644
--- a/apidocs/org/apache/hadoop/hbase/HBaseIOException.html
+++ b/apidocs/org/apache/hadoop/hbase/HBaseIOException.html
@@ -122,7 +122,7 @@
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../org/apache/hadoop/hbase/ipc/CallCancelledException.html" title="class in org.apache.hadoop.hbase.ipc">CallCancelledException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc">CallTimeoutException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CellScannerButNoCodecException.html" title="class in org.apache.hadoop.hbase.ipc">CellScannerButNoCodecException</a>, <a href="../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FailedServerException.html" title="class in org.apache.hadoop.hbase.ipc">FailedServerException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FallbackDisallowedException.html" title="class in org.apache.hadoop.hbase.ipc">FallbackDisallowedException</a>, <a href="../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.
html" title="class in org.apache.hadoop.hbase.util">LeaseNotRecoveredException</a>, <a href="../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>, <a href="../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc">StoppedRpcClientException</a>, <a href="../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a>, <a href="../../../../org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client">WrongRowIOException</a></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/ipc/CallCancelledException.html" title="class in org.apache.hadoop.hbase.ipc">CallCancelledException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc">CallTimeoutException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CellScannerButNoCodecException.html" title="class in org.apache.hadoop.hbase.ipc">CellScannerButNoCodecException</a>, <a href="../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FailedServerException.html" title="class in org.apache.hadoop.hbase.ipc">FailedServerException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FallbackDisallowedException.html" title="class in org.apache.hadoop.hbase.ipc">FallbackDisallowedException</a>, <a href="../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.
html" title="class in org.apache.hadoop.hbase.util">LeaseNotRecoveredException</a>, <a href="../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>, <a href="../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a>, <a href="../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc">StoppedRpcClientException</a>, <a href="../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a>, <a href="../../../../org/apache/had
oop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client">WrongRowIOException</a></dd>
</dl>
<hr>
<br>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html b/apidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
index dca06ed..0a58d3f 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
@@ -381,7 +381,9 @@
<tr class="altColor">
<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
</td>
</tr>
</tbody>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html b/apidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
index b11262d..3a6e532 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
@@ -456,14 +456,22 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span></code>
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></span></code>
<div class="block">An Exception that is thrown when a space quota is in violation.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
</td>
</tr>
</tbody>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/QuotaType.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/QuotaType.html b/apidocs/org/apache/hadoop/hbase/quotas/QuotaType.html
index 657fa0f..3a2d25e 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/QuotaType.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/QuotaType.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettingsFactory.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/QuotaType.html" target="_top">Frames</a></li>
@@ -311,7 +311,7 @@ not permitted.)</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettingsFactory.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/QuotaType.html" target="_top">Frames</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html b/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..995d575
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.Type.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/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.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: </li>
+<li>Nested | </li>
+<li><a href="#enum.constant.summary">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#enum.constant.detail">Enum Constants</a> | </li>
+<li>Field | </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.quotas</div>
+<h2 title="Enum RpcThrottlingException.Type" class="title">Enum RpcThrottlingException.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.30">RpcThrottlingException.Type</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!-- -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumReadRequestsExceeded">NumReadRequestsExceeded</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumRequestsExceeded">NumRequestsExceeded</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumWriteRequestsExceeded">NumWriteRequestsExceeded</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#ReadSizeExceeded">ReadSizeExceeded</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#RequestSizeExceeded">RequestSizeExceeded</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#WriteSizeExceeded">WriteSizeExceeded</a></span></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/
8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</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 java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!-- -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="NumRequestsExceeded">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumRequestsExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="RequestSizeExceeded">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RequestSizeExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">RequestSizeExceeded</a></pre>
+</li>
+</ul>
+<a name="NumReadRequestsExceeded">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumReadRequestsExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumReadRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="NumWriteRequestsExceeded">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumWriteRequestsExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumWriteRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="WriteSizeExceeded">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WriteSizeExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.32">WriteSizeExceeded</a></pre>
+</li>
+</ul>
+<a name="ReadSizeExceeded">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReadSizeExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.32">ReadSizeExceeded</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="values--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.17">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:
+<pre>
+for (RpcThrottlingException.Type c : RpcThrottlingException.Type.values())
+ System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.17">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> 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
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.Type.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/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.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: </li>
+<li>Nested | </li>
+<li><a href="#enum.constant.summary">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#enum.constant.detail">Enum Constants</a> | </li>
+<li>Field | </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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
[32/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html b/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
index 985e2ef..c27a837 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
@@ -37,145 +37,148 @@
<span class="sourceLineNo">029</span> * TODO: At some point this will be handled on the client side to prevent<a name="line.29"></a>
<span class="sourceLineNo">030</span> * operation to go on the server if the waitInterval is grater than the one got<a name="line.30"></a>
<span class="sourceLineNo">031</span> * as result of this exception.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceAudience.Public<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public class ThrottlingException extends QuotaExceededException {<a name="line.34"></a>
-<span class="sourceLineNo">035</span> private static final long serialVersionUID = 1406576492085155743L;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span> @InterfaceAudience.Public<a name="line.37"></a>
-<span class="sourceLineNo">038</span> public enum Type {<a name="line.38"></a>
-<span class="sourceLineNo">039</span> NumRequestsExceeded,<a name="line.39"></a>
-<span class="sourceLineNo">040</span> RequestSizeExceeded,<a name="line.40"></a>
-<span class="sourceLineNo">041</span> NumReadRequestsExceeded,<a name="line.41"></a>
-<span class="sourceLineNo">042</span> NumWriteRequestsExceeded,<a name="line.42"></a>
-<span class="sourceLineNo">043</span> WriteSizeExceeded,<a name="line.43"></a>
-<span class="sourceLineNo">044</span> ReadSizeExceeded,<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> private static final String[] MSG_TYPE = new String[] {<a name="line.47"></a>
-<span class="sourceLineNo">048</span> "number of requests exceeded",<a name="line.48"></a>
-<span class="sourceLineNo">049</span> "request size limit exceeded",<a name="line.49"></a>
-<span class="sourceLineNo">050</span> "number of read requests exceeded",<a name="line.50"></a>
-<span class="sourceLineNo">051</span> "number of write requests exceeded",<a name="line.51"></a>
-<span class="sourceLineNo">052</span> "write size limit exceeded",<a name="line.52"></a>
-<span class="sourceLineNo">053</span> "read size limit exceeded",<a name="line.53"></a>
-<span class="sourceLineNo">054</span> };<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span> private static final String MSG_WAIT = " - wait ";<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span> private long waitInterval;<a name="line.58"></a>
-<span class="sourceLineNo">059</span> private Type type;<a name="line.59"></a>
+<span class="sourceLineNo">032</span> *<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * @deprecated replaced by {@link RpcThrottlingException} since hbase-2.0.0.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>@Deprecated<a name="line.35"></a>
+<span class="sourceLineNo">036</span>@InterfaceAudience.Public<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public class ThrottlingException extends QuotaExceededException {<a name="line.37"></a>
+<span class="sourceLineNo">038</span> private static final long serialVersionUID = 1406576492085155743L;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span> @InterfaceAudience.Public<a name="line.40"></a>
+<span class="sourceLineNo">041</span> public enum Type {<a name="line.41"></a>
+<span class="sourceLineNo">042</span> NumRequestsExceeded,<a name="line.42"></a>
+<span class="sourceLineNo">043</span> RequestSizeExceeded,<a name="line.43"></a>
+<span class="sourceLineNo">044</span> NumReadRequestsExceeded,<a name="line.44"></a>
+<span class="sourceLineNo">045</span> NumWriteRequestsExceeded,<a name="line.45"></a>
+<span class="sourceLineNo">046</span> WriteSizeExceeded,<a name="line.46"></a>
+<span class="sourceLineNo">047</span> ReadSizeExceeded,<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> private static final String[] MSG_TYPE = new String[] {<a name="line.50"></a>
+<span class="sourceLineNo">051</span> "number of requests exceeded",<a name="line.51"></a>
+<span class="sourceLineNo">052</span> "request size limit exceeded",<a name="line.52"></a>
+<span class="sourceLineNo">053</span> "number of read requests exceeded",<a name="line.53"></a>
+<span class="sourceLineNo">054</span> "number of write requests exceeded",<a name="line.54"></a>
+<span class="sourceLineNo">055</span> "write size limit exceeded",<a name="line.55"></a>
+<span class="sourceLineNo">056</span> "read size limit exceeded",<a name="line.56"></a>
+<span class="sourceLineNo">057</span> };<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span> private static final String MSG_WAIT = " - wait ";<a name="line.59"></a>
<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span> public ThrottlingException(String msg) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span> super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">061</span> private long waitInterval;<a name="line.61"></a>
+<span class="sourceLineNo">062</span> private Type type;<a name="line.62"></a>
<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span> // Dirty workaround to get the information after<a name="line.64"></a>
-<span class="sourceLineNo">065</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.65"></a>
-<span class="sourceLineNo">066</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.67"></a>
-<span class="sourceLineNo">068</span> if (index >= 0) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.69"></a>
-<span class="sourceLineNo">070</span> type = Type.values()[i];<a name="line.70"></a>
-<span class="sourceLineNo">071</span> waitInterval = timeFromString(waitTimeStr);<a name="line.71"></a>
-<span class="sourceLineNo">072</span> break;<a name="line.72"></a>
-<span class="sourceLineNo">073</span> }<a name="line.73"></a>
-<span class="sourceLineNo">074</span> }<a name="line.74"></a>
-<span class="sourceLineNo">075</span> }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span> public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span> super(msg);<a name="line.78"></a>
-<span class="sourceLineNo">079</span> this.waitInterval = waitInterval;<a name="line.79"></a>
-<span class="sourceLineNo">080</span> this.type = type;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span> public Type getType() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span> return this.type;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> }<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span> public long getWaitInterval() {<a name="line.87"></a>
-<span class="sourceLineNo">088</span> return this.waitInterval;<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> public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.91"></a>
-<span class="sourceLineNo">092</span> throws ThrottlingException {<a name="line.92"></a>
-<span class="sourceLineNo">093</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.93"></a>
-<span class="sourceLineNo">094</span> }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.96"></a>
-<span class="sourceLineNo">097</span> throws ThrottlingException {<a name="line.97"></a>
-<span class="sourceLineNo">098</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.98"></a>
-<span class="sourceLineNo">099</span> }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.101"></a>
-<span class="sourceLineNo">102</span> throws ThrottlingException {<a name="line.102"></a>
-<span class="sourceLineNo">103</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.103"></a>
-<span class="sourceLineNo">104</span> }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.106"></a>
-<span class="sourceLineNo">107</span> throws ThrottlingException {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.108"></a>
-<span class="sourceLineNo">109</span> }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span> public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.111"></a>
-<span class="sourceLineNo">112</span> throws ThrottlingException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> public static void throwReadSizeExceeded(final long waitInterval)<a name="line.116"></a>
-<span class="sourceLineNo">117</span> throws ThrottlingException {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.118"></a>
-<span class="sourceLineNo">119</span> }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.121"></a>
-<span class="sourceLineNo">122</span> throws ThrottlingException {<a name="line.122"></a>
-<span class="sourceLineNo">123</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.123"></a>
-<span class="sourceLineNo">124</span> throw new ThrottlingException(type, waitInterval, msg);<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> public static String formatTime(long timeDiff) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span> StringBuilder buf = new StringBuilder();<a name="line.128"></a>
-<span class="sourceLineNo">129</span> long hours = timeDiff / (60*60*1000);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> long rem = (timeDiff % (60*60*1000));<a name="line.130"></a>
-<span class="sourceLineNo">131</span> long minutes = rem / (60*1000);<a name="line.131"></a>
-<span class="sourceLineNo">132</span> rem = rem % (60*1000);<a name="line.132"></a>
-<span class="sourceLineNo">133</span> float seconds = rem / 1000.0f;<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span> if (hours != 0){<a name="line.135"></a>
-<span class="sourceLineNo">136</span> buf.append(hours);<a name="line.136"></a>
-<span class="sourceLineNo">137</span> buf.append("hrs, ");<a name="line.137"></a>
-<span class="sourceLineNo">138</span> }<a name="line.138"></a>
-<span class="sourceLineNo">139</span> if (minutes != 0){<a name="line.139"></a>
-<span class="sourceLineNo">140</span> buf.append(minutes);<a name="line.140"></a>
-<span class="sourceLineNo">141</span> buf.append("mins, ");<a name="line.141"></a>
-<span class="sourceLineNo">142</span> }<a name="line.142"></a>
-<span class="sourceLineNo">143</span> buf.append(String.format("%.2fsec", seconds));<a name="line.143"></a>
-<span class="sourceLineNo">144</span> return buf.toString();<a name="line.144"></a>
-<span class="sourceLineNo">145</span> }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span> private static long timeFromString(String timeDiff) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span> Pattern[] patterns = new Pattern[] {<a name="line.148"></a>
-<span class="sourceLineNo">149</span> Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.149"></a>
-<span class="sourceLineNo">150</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.150"></a>
-<span class="sourceLineNo">151</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<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> for (int i = 0; i < patterns.length; ++i) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.155"></a>
-<span class="sourceLineNo">156</span> if (m.find()) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.157"></a>
-<span class="sourceLineNo">158</span> if (i > 0) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> if (i > 1) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.162"></a>
+<span class="sourceLineNo">064</span> public ThrottlingException(String msg) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span> super(msg);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span> // Dirty workaround to get the information after<a name="line.67"></a>
+<span class="sourceLineNo">068</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.68"></a>
+<span class="sourceLineNo">069</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span> if (index >= 0) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.72"></a>
+<span class="sourceLineNo">073</span> type = Type.values()[i];<a name="line.73"></a>
+<span class="sourceLineNo">074</span> waitInterval = timeFromString(waitTimeStr);<a name="line.74"></a>
+<span class="sourceLineNo">075</span> break;<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> }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span> public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span> super(msg);<a name="line.81"></a>
+<span class="sourceLineNo">082</span> this.waitInterval = waitInterval;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> this.type = type;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span> public Type getType() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span> return this.type;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span> public long getWaitInterval() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span> return this.waitInterval;<a name="line.91"></a>
+<span class="sourceLineNo">092</span> }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span> public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.94"></a>
+<span class="sourceLineNo">095</span> throws ThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.99"></a>
+<span class="sourceLineNo">100</span> throws ThrottlingException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.104"></a>
+<span class="sourceLineNo">105</span> throws ThrottlingException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.106"></a>
+<span class="sourceLineNo">107</span> }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.109"></a>
+<span class="sourceLineNo">110</span> throws ThrottlingException {<a name="line.110"></a>
+<span class="sourceLineNo">111</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span> public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.114"></a>
+<span class="sourceLineNo">115</span> throws ThrottlingException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<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> public static void throwReadSizeExceeded(final long waitInterval)<a name="line.119"></a>
+<span class="sourceLineNo">120</span> throws ThrottlingException {<a name="line.120"></a>
+<span class="sourceLineNo">121</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.124"></a>
+<span class="sourceLineNo">125</span> throws ThrottlingException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> throw new ThrottlingException(type, waitInterval, msg);<a name="line.127"></a>
+<span class="sourceLineNo">128</span> }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span> public static String formatTime(long timeDiff) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span> StringBuilder buf = new StringBuilder();<a name="line.131"></a>
+<span class="sourceLineNo">132</span> long hours = timeDiff / (60*60*1000);<a name="line.132"></a>
+<span class="sourceLineNo">133</span> long rem = (timeDiff % (60*60*1000));<a name="line.133"></a>
+<span class="sourceLineNo">134</span> long minutes = rem / (60*1000);<a name="line.134"></a>
+<span class="sourceLineNo">135</span> rem = rem % (60*1000);<a name="line.135"></a>
+<span class="sourceLineNo">136</span> float seconds = rem / 1000.0f;<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span> if (hours != 0){<a name="line.138"></a>
+<span class="sourceLineNo">139</span> buf.append(hours);<a name="line.139"></a>
+<span class="sourceLineNo">140</span> buf.append("hrs, ");<a name="line.140"></a>
+<span class="sourceLineNo">141</span> }<a name="line.141"></a>
+<span class="sourceLineNo">142</span> if (minutes != 0){<a name="line.142"></a>
+<span class="sourceLineNo">143</span> buf.append(minutes);<a name="line.143"></a>
+<span class="sourceLineNo">144</span> buf.append("mins, ");<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span> buf.append(String.format("%.2fsec", seconds));<a name="line.146"></a>
+<span class="sourceLineNo">147</span> return buf.toString();<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> private static long timeFromString(String timeDiff) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Pattern[] patterns = new Pattern[] {<a name="line.151"></a>
+<span class="sourceLineNo">152</span> Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.152"></a>
+<span class="sourceLineNo">153</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<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> for (int i = 0; i < patterns.length; ++i) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.158"></a>
+<span class="sourceLineNo">159</span> if (m.find()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.160"></a>
+<span class="sourceLineNo">161</span> if (i > 0) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.162"></a>
<span class="sourceLineNo">163</span> }<a name="line.163"></a>
-<span class="sourceLineNo">164</span> return time;<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><a name="line.167"></a>
-<span class="sourceLineNo">168</span> return -1;<a name="line.168"></a>
-<span class="sourceLineNo">169</span> }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>}<a name="line.170"></a>
+<span class="sourceLineNo">164</span> if (i > 1) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> }<a name="line.166"></a>
+<span class="sourceLineNo">167</span> return time;<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><a name="line.170"></a>
+<span class="sourceLineNo">171</span> return -1;<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>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 78c268a..f69adc9 100644
--- a/book.html
+++ b/book.html
@@ -37715,7 +37715,7 @@ The server will return cellblocks compressed using this same compressor as long
<div id="footer">
<div id="footer-text">
Version 3.0.0-SNAPSHOT<br>
-Last updated 2018-04-16 14:29:50 UTC
+Last updated 2018-04-17 14:29:51 UTC
</div>
</div>
</body>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 80b9771..e289fe0 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Bulk Loads in Apache HBase (TM)
@@ -306,7 +306,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index fa02e08..c36b6da 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Checkstyle Results</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -281,10 +281,10 @@
<th><img src="images/icon_warning_sml.gif" alt="" /> Warnings</th>
<th><img src="images/icon_error_sml.gif" alt="" /> Errors</th></tr>
<tr class="b">
-<td>3601</td>
+<td>3604</td>
<td>0</td>
<td>0</td>
-<td>15869</td></tr></table></div>
+<td>15863</td></tr></table></div>
<div class="section">
<h2><a name="Files"></a>Files</h2>
<table border="0" class="table table-striped">
@@ -1887,7 +1887,7 @@
<td><a href="#org.apache.hadoop.hbase.client.TestMetaCache.java">org/apache/hadoop/hbase/client/TestMetaCache.java</a></td>
<td>0</td>
<td>0</td>
-<td>13</td></tr>
+<td>7</td></tr>
<tr class="a">
<td><a href="#org.apache.hadoop.hbase.client.TestMetricsConnection.java">org/apache/hadoop/hbase/client/TestMetricsConnection.java</a></td>
<td>0</td>
@@ -10315,19 +10315,19 @@
<li>caseIndent: <tt>"2"</tt></li>
<li>basicOffset: <tt>"2"</tt></li>
<li>lineWrappingIndentation: <tt>"2"</tt></li></ul></td>
-<td>4633</td>
+<td>4627</td>
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td></tr>
<tr class="a">
<td>javadoc</td>
<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a>
<ul>
<li>offset: <tt>"2"</tt></li></ul></td>
-<td>798</td>
+<td>784</td>
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td></tr>
<tr class="b">
<td></td>
<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>3831</td>
+<td>3845</td>
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td></tr>
<tr class="a">
<td>misc</td>
@@ -14536,7 +14536,7 @@
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 26 has parse error. Missed HTML close tag 'arg'. Sometimes it means that close tag missed for one of previous tags.</td>
<td>44</td></tr></table></div>
<div class="section">
@@ -15172,7 +15172,7 @@
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 4 has parse error. Missed HTML close tag 'pre'. Sometimes it means that close tag missed for one of previous tags.</td>
<td>59</td></tr></table></div>
<div class="section">
@@ -16927,7 +16927,7 @@
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 19 has parse error. Details: no viable alternative at input '<code>\n * List<Future<' while parsing HTML_TAG</td>
<td>167</td></tr></table></div>
<div class="section">
@@ -19849,7 +19849,7 @@
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 2 has parse error. Unrecognized error from ANTLR parser: null</td>
<td>83</td></tr>
<tr class="a">
@@ -31052,42 +31052,6 @@
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>indentation</td>
<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>196</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>197</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>198</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>199</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>200</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>201</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
-<td>indentation</td>
-<td>Indentation</td>
<td>'block rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
<td>202</td></tr>
<tr class="b">
@@ -33832,7 +33796,7 @@
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 37 has parse error. Details: no viable alternative at input '<ColumnFamily,' while parsing HTML_ELEMENT</td>
<td>29</td></tr></table></div>
<div class="section">
@@ -50128,7 +50092,7 @@
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 24 has parse error. Details: no viable alternative at input '<key,' while parsing HTML_ELEMENT</td>
<td>25</td></tr>
<tr class="b">
@@ -53716,7 +53680,7 @@
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 2 has parse error. Unrecognized error from ANTLR parser: null</td>
<td>587</td></tr>
<tr class="a">
@@ -73267,7 +73231,7 @@
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 60 has parse error. Missed HTML close tag 'Comparable'. Sometimes it means that close tag missed for one of previous tags.</td>
<td>29</td></tr>
<tr class="a">
@@ -77449,7 +77413,7 @@
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 0 has parse error. Unrecognized error from ANTLR parser: null</td>
<td>74</td></tr>
<tr class="a">
@@ -87415,7 +87379,7 @@
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 33 has parse error. Missed HTML close tag 'number'. Sometimes it means that close tag missed for one of previous tags.</td>
<td>127</td></tr>
<tr class="b">
@@ -94281,7 +94245,7 @@
<td>javadoc</td>
<td>NonEmptyAtclauseDescription</td>
<td>At-clause should have a non-empty description.</td>
-<td>57</td></tr></table></div>
+<td>79</td></tr></table></div>
<div class="section">
<h3 id="org.apache.hadoop.hbase.replication.TestReplicationDisableInactivePeer.java">org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.java</h3>
<table border="0" class="table table-striped">
@@ -94326,43 +94290,43 @@
<td>sizes</td>
<td>LineLength</td>
<td>Line is longer than 100 characters (found 114).</td>
-<td>252</td></tr>
+<td>251</td></tr>
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>sizes</td>
<td>LineLength</td>
<td>Line is longer than 100 characters (found 114).</td>
-<td>281</td></tr>
+<td>280</td></tr>
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>sizes</td>
<td>LineLength</td>
<td>Line is longer than 100 characters (found 114).</td>
-<td>291</td></tr>
+<td>290</td></tr>
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>sizes</td>
<td>LineLength</td>
<td>Line is longer than 100 characters (found 109).</td>
-<td>307</td></tr>
+<td>306</td></tr>
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>sizes</td>
<td>LineLength</td>
<td>Line is longer than 100 characters (found 110).</td>
-<td>317</td></tr>
+<td>316</td></tr>
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>sizes</td>
<td>LineLength</td>
<td>Line is longer than 100 characters (found 108).</td>
-<td>318</td></tr>
+<td>317</td></tr>
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>sizes</td>
<td>LineLength</td>
<td>Line is longer than 100 characters (found 101).</td>
-<td>553</td></tr></table></div>
+<td>557</td></tr></table></div>
<div class="section">
<h3 id="org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSCompressed.java">org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.java</h3>
<table border="0" class="table table-striped">
@@ -115969,7 +115933,7 @@
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 23 has parse error. Details: no viable alternative at input '<expected,' while parsing HTML_ELEMENT</td>
<td>143</td></tr>
<tr class="a">
@@ -116173,7 +116137,7 @@
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 78 has parse error. Details: no viable alternative at input '<Object>, Map<String,' while parsing HTML_TAG</td>
<td>33</td></tr>
<tr class="a">
@@ -116773,7 +116737,7 @@
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 35 has parse error. Missed HTML close tag 'index'. Sometimes it means that close tag missed for one of previous tags.</td>
<td>823</td></tr>
<tr class="b">
@@ -120580,7 +120544,7 @@
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td>
<td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
<td>Javadoc comment at column 58 has parse error. Details: no viable alternative at input '<byte[' while parsing HTML_ELEMENT</td>
<td>426</td></tr>
<tr class="a">
@@ -123433,7 +123397,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 3fecdff..b94c3ab 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
<language>en-us</language>
<copyright>©2007 - 2018 The Apache Software Foundation</copyright>
<item>
- <title>File: 3601,
- Errors: 15869,
+ <title>File: 3604,
+ Errors: 15863,
Warnings: 0,
Infos: 0
</title>
@@ -25330,6 +25330,20 @@ under the License.
</tr>
<tr>
<td>
+ <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.quotas.RpcThrottlingException.java">org/apache/hadoop/hbase/quotas/RpcThrottlingException.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.master.ClusterSchemaException.java">org/apache/hadoop/hbase/master/ClusterSchemaException.java</a>
</td>
<td>
@@ -28746,6 +28760,20 @@ under the License.
</tr>
<tr>
<td>
+ <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs.java">org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.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.codec.TestKeyValueCodecWithTags.java">org/apache/hadoop/hbase/codec/TestKeyValueCodecWithTags.java</a>
</td>
<td>
@@ -35424,6 +35452,20 @@ under the License.
</tr>
<tr>
<td>
+ <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs.java">org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.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.MetricsRegionServerQuotaSource.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.java</a>
</td>
<td>
@@ -42923,7 +42965,7 @@ under the License.
0
</td>
<td>
- 13
+ 7
</td>
</tr>
<tr>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 42f9d7f..7c73fc5 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Code of Conduct Policy
@@ -375,7 +375,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 6ad6a29..fcb521f 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Dependencies</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -440,7 +440,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index e441ca2..11a8b40 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Reactor Dependency Convergence</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1105,7 +1105,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index dc88589..d5d7f8f 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Dependency Information</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -313,7 +313,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index e7c3bc5..3ede549 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Dependency Management</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -969,7 +969,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-frame.html b/devapidocs/allclasses-frame.html
index 7965647..1adf635 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -2280,6 +2280,8 @@
<li><a href="org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html" title="interface in org.apache.hadoop.hbase.ipc" target="classFrame"><span class="interfaceName">RpcServer.CallCleanup</span></a></li>
<li><a href="org/apache/hadoop/hbase/ipc/RpcServerFactory.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">RpcServerFactory</a></li>
<li><a href="org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc" target="classFrame"><span class="interfaceName">RpcServerInterface</span></a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException</a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException.Type</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/rsgroup/RSGroupableBalancer.html" title="interface in org.apache.hadoop.hbase.rsgroup" target="classFrame"><span class="interfaceName">RSGroupableBalancer</span></a></li>
<li><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html" title="interface in org.apache.hadoop.hbase.rsgroup" target="classFrame"><span class="interfaceName">RSGroupAdmin</span></a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index 3ba57dc..37b4c60 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -2280,6 +2280,8 @@
<li><a href="org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="interfaceName">RpcServer.CallCleanup</span></a></li>
<li><a href="org/apache/hadoop/hbase/ipc/RpcServerFactory.html" title="class in org.apache.hadoop.hbase.ipc">RpcServerFactory</a></li>
<li><a href="org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="interfaceName">RpcServerInterface</span></a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</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/rsgroup/RSGroupableBalancer.html" title="interface in org.apache.hadoop.hbase.rsgroup"><span class="interfaceName">RSGroupableBalancer</span></a></li>
<li><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html" title="interface in org.apache.hadoop.hbase.rsgroup"><span class="interfaceName">RSGroupAdmin</span></a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 4432fe6..c8f33fe 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3768,21 +3768,21 @@
<!-- -->
</a><code>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Mon Apr 16 14:39:11 UTC 2018"</code></td>
+<td class="colLast"><code>"Tue Apr 17 14:39:15 UTC 2018"</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
<!-- -->
</a><code>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"773aff90fdf9edf4687b373d1c7ba859d166a437"</code></td>
+<td class="colLast"><code>"42d5447cfbc593becfc26684e03f482eb3a0fc49"</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
<!-- -->
</a><code>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"83e5500271237f8b8d44991e5fb13ecd"</code></td>
+<td class="colLast"><code>"7216e99e4e2f243f8ca1e9d09be1a120"</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -17224,6 +17224,25 @@
</li>
<li class="blockList">
<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.quotas.RpcThrottlingException.MSG_WAIT">
+<!-- -->
+</a><code>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#MSG_WAIT">MSG_WAIT</a></code></td>
+<td class="colLast"><code>" - wait "</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
<caption><span>org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas">SnapshotQuotaObserverChore</a></span><span class="tabEnd"> </span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/deprecated-list.html
----------------------------------------------------------------------
diff --git a/devapidocs/deprecated-list.html b/devapidocs/deprecated-list.html
index 92ff3b6..c62f7e1 100644
--- a/devapidocs/deprecated-list.html
+++ b/devapidocs/deprecated-list.html
@@ -288,6 +288,11 @@
<div class="block"><span class="deprecationComment">use <a href="org/apache/hadoop/hbase/client/RowTooBigException.html" title="class in org.apache.hadoop.hbase.client"><code>RowTooBigException</code></a> instead.</span></div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.ThrottlingException</a>
+<div class="block"><span class="deprecationComment">replaced by <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</td>
+</tr>
</tbody>
</table>
</li>
[03/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
index c8c6963..0ab1795 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
@@ -63,373 +63,393 @@
<span class="sourceLineNo">055</span>import org.junit.ClassRule;<a name="line.55"></a>
<span class="sourceLineNo">056</span>import org.junit.Test;<a name="line.56"></a>
<span class="sourceLineNo">057</span>import org.junit.experimental.categories.Category;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.slf4j.Logger;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.slf4j.LoggerFactory;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.61"></a>
-<span class="sourceLineNo">062</span>public class TestReplicationSmallTests extends TestReplicationBase {<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span> @ClassRule<a name="line.64"></a>
-<span class="sourceLineNo">065</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.65"></a>
-<span class="sourceLineNo">066</span> HBaseClassTestRule.forClass(TestReplicationSmallTests.class);<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span> private static final Logger LOG = LoggerFactory.getLogger(TestReplicationSmallTests.class);<a name="line.68"></a>
-<span class="sourceLineNo">069</span> private static final String PEER_ID = "2";<a name="line.69"></a>
+<span class="sourceLineNo">058</span>import org.junit.runner.RunWith;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.junit.runners.Parameterized;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.junit.runners.Parameterized.Parameter;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.junit.runners.Parameterized.Parameters;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.slf4j.Logger;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.slf4j.LoggerFactory;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableList;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>@RunWith(Parameterized.class)<a name="line.67"></a>
+<span class="sourceLineNo">068</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.68"></a>
+<span class="sourceLineNo">069</span>public class TestReplicationSmallTests extends TestReplicationBase {<a name="line.69"></a>
<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span> @Before<a name="line.71"></a>
-<span class="sourceLineNo">072</span> public void setUp() throws Exception {<a name="line.72"></a>
-<span class="sourceLineNo">073</span> cleanUp();<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> * Verify that version and column delete marker types are replicated correctly.<a name="line.77"></a>
-<span class="sourceLineNo">078</span> */<a name="line.78"></a>
-<span class="sourceLineNo">079</span> @Test<a name="line.79"></a>
-<span class="sourceLineNo">080</span> public void testDeleteTypes() throws Exception {<a name="line.80"></a>
-<span class="sourceLineNo">081</span> LOG.info("testDeleteTypes");<a name="line.81"></a>
-<span class="sourceLineNo">082</span> final byte[] v1 = Bytes.toBytes("v1");<a name="line.82"></a>
-<span class="sourceLineNo">083</span> final byte[] v2 = Bytes.toBytes("v2");<a name="line.83"></a>
-<span class="sourceLineNo">084</span> final byte[] v3 = Bytes.toBytes("v3");<a name="line.84"></a>
-<span class="sourceLineNo">085</span> htable1 = utility1.getConnection().getTable(tableName);<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span> long t = EnvironmentEdgeManager.currentTime();<a name="line.87"></a>
-<span class="sourceLineNo">088</span> // create three versions for "row"<a name="line.88"></a>
-<span class="sourceLineNo">089</span> Put put = new Put(row);<a name="line.89"></a>
-<span class="sourceLineNo">090</span> put.addColumn(famName, row, t, v1);<a name="line.90"></a>
-<span class="sourceLineNo">091</span> htable1.put(put);<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span> put = new Put(row);<a name="line.93"></a>
-<span class="sourceLineNo">094</span> put.addColumn(famName, row, t + 1, v2);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> htable1.put(put);<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span> put = new Put(row);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> put.addColumn(famName, row, t + 2, v3);<a name="line.98"></a>
-<span class="sourceLineNo">099</span> htable1.put(put);<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span> Get get = new Get(row);<a name="line.101"></a>
-<span class="sourceLineNo">102</span> get.readAllVersions();<a name="line.102"></a>
-<span class="sourceLineNo">103</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span> if (i == NB_RETRIES - 1) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span> fail("Waited too much time for put replication");<a name="line.105"></a>
-<span class="sourceLineNo">106</span> }<a name="line.106"></a>
-<span class="sourceLineNo">107</span> Result res = htable2.get(get);<a name="line.107"></a>
-<span class="sourceLineNo">108</span> if (res.size() < 3) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> LOG.info("Rows not available");<a name="line.109"></a>
-<span class="sourceLineNo">110</span> Thread.sleep(SLEEP_TIME);<a name="line.110"></a>
-<span class="sourceLineNo">111</span> } else {<a name="line.111"></a>
-<span class="sourceLineNo">112</span> assertArrayEquals(CellUtil.cloneValue(res.rawCells()[0]), v3);<a name="line.112"></a>
-<span class="sourceLineNo">113</span> assertArrayEquals(CellUtil.cloneValue(res.rawCells()[1]), v2);<a name="line.113"></a>
-<span class="sourceLineNo">114</span> assertArrayEquals(CellUtil.cloneValue(res.rawCells()[2]), v1);<a name="line.114"></a>
-<span class="sourceLineNo">115</span> break;<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> // place a version delete marker (delete last version)<a name="line.118"></a>
-<span class="sourceLineNo">119</span> Delete d = new Delete(row);<a name="line.119"></a>
-<span class="sourceLineNo">120</span> d.addColumn(famName, row, t);<a name="line.120"></a>
-<span class="sourceLineNo">121</span> htable1.delete(d);<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span> get = new Get(row);<a name="line.123"></a>
-<span class="sourceLineNo">124</span> get.readAllVersions();<a name="line.124"></a>
-<span class="sourceLineNo">125</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.125"></a>
-<span class="sourceLineNo">126</span> if (i == NB_RETRIES - 1) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span> fail("Waited too much time for put replication");<a name="line.127"></a>
-<span class="sourceLineNo">128</span> }<a name="line.128"></a>
-<span class="sourceLineNo">129</span> Result res = htable2.get(get);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> if (res.size() > 2) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> LOG.info("Version not deleted");<a name="line.131"></a>
-<span class="sourceLineNo">132</span> Thread.sleep(SLEEP_TIME);<a name="line.132"></a>
-<span class="sourceLineNo">133</span> } else {<a name="line.133"></a>
-<span class="sourceLineNo">134</span> assertArrayEquals(CellUtil.cloneValue(res.rawCells()[0]), v3);<a name="line.134"></a>
-<span class="sourceLineNo">135</span> assertArrayEquals(CellUtil.cloneValue(res.rawCells()[1]), v2);<a name="line.135"></a>
-<span class="sourceLineNo">136</span> break;<a name="line.136"></a>
-<span class="sourceLineNo">137</span> }<a name="line.137"></a>
-<span class="sourceLineNo">138</span> }<a name="line.138"></a>
-<span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span> // place a column delete marker<a name="line.140"></a>
-<span class="sourceLineNo">141</span> d = new Delete(row);<a name="line.141"></a>
-<span class="sourceLineNo">142</span> d.addColumns(famName, row, t + 2);<a name="line.142"></a>
-<span class="sourceLineNo">143</span> htable1.delete(d);<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span> // now *both* of the remaining version should be deleted<a name="line.145"></a>
-<span class="sourceLineNo">146</span> // at the replica<a name="line.146"></a>
-<span class="sourceLineNo">147</span> get = new Get(row);<a name="line.147"></a>
-<span class="sourceLineNo">148</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span> if (i == NB_RETRIES - 1) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span> fail("Waited too much time for del replication");<a name="line.150"></a>
-<span class="sourceLineNo">151</span> }<a name="line.151"></a>
-<span class="sourceLineNo">152</span> Result res = htable2.get(get);<a name="line.152"></a>
-<span class="sourceLineNo">153</span> if (res.size() >= 1) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span> LOG.info("Rows not deleted");<a name="line.154"></a>
-<span class="sourceLineNo">155</span> Thread.sleep(SLEEP_TIME);<a name="line.155"></a>
-<span class="sourceLineNo">156</span> } else {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> break;<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><a name="line.161"></a>
-<span class="sourceLineNo">162</span> /**<a name="line.162"></a>
-<span class="sourceLineNo">163</span> * Add a row, check it's replicated, delete it, check's gone<a name="line.163"></a>
-<span class="sourceLineNo">164</span> */<a name="line.164"></a>
-<span class="sourceLineNo">165</span> @Test<a name="line.165"></a>
-<span class="sourceLineNo">166</span> public void testSimplePutDelete() throws Exception {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> LOG.info("testSimplePutDelete");<a name="line.167"></a>
-<span class="sourceLineNo">168</span> runSimplePutDeleteTest();<a name="line.168"></a>
-<span class="sourceLineNo">169</span> }<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span> /**<a name="line.171"></a>
-<span class="sourceLineNo">172</span> * Try a small batch upload using the write buffer, check it's replicated<a name="line.172"></a>
-<span class="sourceLineNo">173</span> */<a name="line.173"></a>
-<span class="sourceLineNo">174</span> @Test<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public void testSmallBatch() throws Exception {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> LOG.info("testSmallBatch");<a name="line.176"></a>
-<span class="sourceLineNo">177</span> runSmallBatchTest();<a name="line.177"></a>
-<span class="sourceLineNo">178</span> }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span> /**<a name="line.180"></a>
-<span class="sourceLineNo">181</span> * Test disable/enable replication, trying to insert, make sure nothing's replicated, enable it,<a name="line.181"></a>
-<span class="sourceLineNo">182</span> * the insert should be replicated<a name="line.182"></a>
-<span class="sourceLineNo">183</span> */<a name="line.183"></a>
-<span class="sourceLineNo">184</span> @Test<a name="line.184"></a>
-<span class="sourceLineNo">185</span> public void testDisableEnable() throws Exception {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> // Test disabling replication<a name="line.186"></a>
-<span class="sourceLineNo">187</span> hbaseAdmin.disableReplicationPeer(PEER_ID);<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span> byte[] rowkey = Bytes.toBytes("disable enable");<a name="line.189"></a>
-<span class="sourceLineNo">190</span> Put put = new Put(rowkey);<a name="line.190"></a>
-<span class="sourceLineNo">191</span> put.addColumn(famName, row, row);<a name="line.191"></a>
-<span class="sourceLineNo">192</span> htable1.put(put);<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> Get get = new Get(rowkey);<a name="line.194"></a>
-<span class="sourceLineNo">195</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span> Result res = htable2.get(get);<a name="line.196"></a>
-<span class="sourceLineNo">197</span> if (res.size() >= 1) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span> fail("Replication wasn't disabled");<a name="line.198"></a>
-<span class="sourceLineNo">199</span> } else {<a name="line.199"></a>
-<span class="sourceLineNo">200</span> LOG.info("Row not replicated, let's wait a bit more...");<a name="line.200"></a>
-<span class="sourceLineNo">201</span> Thread.sleep(SLEEP_TIME);<a name="line.201"></a>
-<span class="sourceLineNo">202</span> }<a name="line.202"></a>
-<span class="sourceLineNo">203</span> }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span> // Test enable replication<a name="line.205"></a>
-<span class="sourceLineNo">206</span> hbaseAdmin.enableReplicationPeer(PEER_ID);<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span> Result res = htable2.get(get);<a name="line.209"></a>
-<span class="sourceLineNo">210</span> if (res.isEmpty()) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> LOG.info("Row not available");<a name="line.211"></a>
-<span class="sourceLineNo">212</span> Thread.sleep(SLEEP_TIME);<a name="line.212"></a>
-<span class="sourceLineNo">213</span> } else {<a name="line.213"></a>
-<span class="sourceLineNo">214</span> assertArrayEquals(row, res.value());<a name="line.214"></a>
-<span class="sourceLineNo">215</span> return;<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> fail("Waited too much time for put replication");<a name="line.218"></a>
-<span class="sourceLineNo">219</span> }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span> /**<a name="line.221"></a>
-<span class="sourceLineNo">222</span> * Integration test for TestReplicationAdmin, removes and re-add a peer cluster<a name="line.222"></a>
-<span class="sourceLineNo">223</span> */<a name="line.223"></a>
-<span class="sourceLineNo">224</span> @Test<a name="line.224"></a>
-<span class="sourceLineNo">225</span> public void testAddAndRemoveClusters() throws Exception {<a name="line.225"></a>
-<span class="sourceLineNo">226</span> LOG.info("testAddAndRemoveClusters");<a name="line.226"></a>
-<span class="sourceLineNo">227</span> hbaseAdmin.removeReplicationPeer(PEER_ID);<a name="line.227"></a>
-<span class="sourceLineNo">228</span> Thread.sleep(SLEEP_TIME);<a name="line.228"></a>
-<span class="sourceLineNo">229</span> byte[] rowKey = Bytes.toBytes("Won't be replicated");<a name="line.229"></a>
-<span class="sourceLineNo">230</span> Put put = new Put(rowKey);<a name="line.230"></a>
-<span class="sourceLineNo">231</span> put.addColumn(famName, row, row);<a name="line.231"></a>
-<span class="sourceLineNo">232</span> htable1.put(put);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span> Get get = new Get(rowKey);<a name="line.234"></a>
-<span class="sourceLineNo">235</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.235"></a>
-<span class="sourceLineNo">236</span> if (i == NB_RETRIES - 1) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span> break;<a name="line.237"></a>
-<span class="sourceLineNo">238</span> }<a name="line.238"></a>
-<span class="sourceLineNo">239</span> Result res = htable2.get(get);<a name="line.239"></a>
-<span class="sourceLineNo">240</span> if (res.size() >= 1) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span> fail("Not supposed to be replicated");<a name="line.241"></a>
-<span class="sourceLineNo">242</span> } else {<a name="line.242"></a>
-<span class="sourceLineNo">243</span> LOG.info("Row not replicated, let's wait a bit more...");<a name="line.243"></a>
-<span class="sourceLineNo">244</span> Thread.sleep(SLEEP_TIME);<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> ReplicationPeerConfig rpc =<a name="line.247"></a>
-<span class="sourceLineNo">248</span> ReplicationPeerConfig.newBuilder().setClusterKey(utility2.getClusterKey()).build();<a name="line.248"></a>
-<span class="sourceLineNo">249</span> hbaseAdmin.addReplicationPeer(PEER_ID, rpc);<a name="line.249"></a>
-<span class="sourceLineNo">250</span> Thread.sleep(SLEEP_TIME);<a name="line.250"></a>
-<span class="sourceLineNo">251</span> rowKey = Bytes.toBytes("do rep");<a name="line.251"></a>
-<span class="sourceLineNo">252</span> put = new Put(rowKey);<a name="line.252"></a>
-<span class="sourceLineNo">253</span> put.addColumn(famName, row, row);<a name="line.253"></a>
-<span class="sourceLineNo">254</span> LOG.info("Adding new row");<a name="line.254"></a>
-<span class="sourceLineNo">255</span> htable1.put(put);<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span> get = new Get(rowKey);<a name="line.257"></a>
-<span class="sourceLineNo">258</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> if (i == NB_RETRIES - 1) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> fail("Waited too much time for put replication");<a name="line.260"></a>
-<span class="sourceLineNo">261</span> }<a name="line.261"></a>
-<span class="sourceLineNo">262</span> Result res = htable2.get(get);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> if (res.isEmpty()) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> LOG.info("Row not available");<a name="line.264"></a>
-<span class="sourceLineNo">265</span> Thread.sleep(SLEEP_TIME * i);<a name="line.265"></a>
-<span class="sourceLineNo">266</span> } else {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> assertArrayEquals(row, res.value());<a name="line.267"></a>
-<span class="sourceLineNo">268</span> break;<a name="line.268"></a>
-<span class="sourceLineNo">269</span> }<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span> }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> /**<a name="line.273"></a>
-<span class="sourceLineNo">274</span> * Do a more intense version testSmallBatch, one that will trigger wal rolling and other<a name="line.274"></a>
-<span class="sourceLineNo">275</span> * non-trivial code paths<a name="line.275"></a>
-<span class="sourceLineNo">276</span> */<a name="line.276"></a>
-<span class="sourceLineNo">277</span> @Test<a name="line.277"></a>
-<span class="sourceLineNo">278</span> public void testLoading() throws Exception {<a name="line.278"></a>
-<span class="sourceLineNo">279</span> LOG.info("Writing out rows to table1 in testLoading");<a name="line.279"></a>
-<span class="sourceLineNo">280</span> List<Put> puts = new ArrayList<>(NB_ROWS_IN_BIG_BATCH);<a name="line.280"></a>
-<span class="sourceLineNo">281</span> for (int i = 0; i < NB_ROWS_IN_BIG_BATCH; i++) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span> Put put = new Put(Bytes.toBytes(i));<a name="line.282"></a>
-<span class="sourceLineNo">283</span> put.addColumn(famName, row, row);<a name="line.283"></a>
-<span class="sourceLineNo">284</span> puts.add(put);<a name="line.284"></a>
-<span class="sourceLineNo">285</span> }<a name="line.285"></a>
-<span class="sourceLineNo">286</span> // The puts will be iterated through and flushed only when the buffer<a name="line.286"></a>
-<span class="sourceLineNo">287</span> // size is reached.<a name="line.287"></a>
-<span class="sourceLineNo">288</span> htable1.put(puts);<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span> Scan scan = new Scan();<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span> ResultScanner scanner = htable1.getScanner(scan);<a name="line.292"></a>
-<span class="sourceLineNo">293</span> Result[] res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.293"></a>
-<span class="sourceLineNo">294</span> scanner.close();<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span> assertEquals(NB_ROWS_IN_BIG_BATCH, res.length);<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span> LOG.info("Looking in table2 for replicated rows in testLoading");<a name="line.298"></a>
-<span class="sourceLineNo">299</span> long start = System.currentTimeMillis();<a name="line.299"></a>
-<span class="sourceLineNo">300</span> // Retry more than NB_RETRIES. As it was, retries were done in 5 seconds and we'd fail<a name="line.300"></a>
-<span class="sourceLineNo">301</span> // sometimes.<a name="line.301"></a>
-<span class="sourceLineNo">302</span> final long retries = NB_RETRIES * 10;<a name="line.302"></a>
-<span class="sourceLineNo">303</span> for (int i = 0; i < retries; i++) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span> scan = new Scan();<a name="line.304"></a>
-<span class="sourceLineNo">305</span> scanner = htable2.getScanner(scan);<a name="line.305"></a>
-<span class="sourceLineNo">306</span> res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.306"></a>
-<span class="sourceLineNo">307</span> scanner.close();<a name="line.307"></a>
-<span class="sourceLineNo">308</span> if (res.length != NB_ROWS_IN_BIG_BATCH) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> if (i == retries - 1) {<a name="line.309"></a>
-<span class="sourceLineNo">310</span> int lastRow = -1;<a name="line.310"></a>
-<span class="sourceLineNo">311</span> for (Result result : res) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> int currentRow = Bytes.toInt(result.getRow());<a name="line.312"></a>
-<span class="sourceLineNo">313</span> for (int row = lastRow + 1; row < currentRow; row++) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span> LOG.error("Row missing: " + row);<a name="line.314"></a>
-<span class="sourceLineNo">315</span> }<a name="line.315"></a>
-<span class="sourceLineNo">316</span> lastRow = currentRow;<a name="line.316"></a>
-<span class="sourceLineNo">317</span> }<a name="line.317"></a>
-<span class="sourceLineNo">318</span> LOG.error("Last row: " + lastRow);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> fail("Waited too much time for normal batch replication, " + res.length + " instead of " +<a name="line.319"></a>
-<span class="sourceLineNo">320</span> NB_ROWS_IN_BIG_BATCH + "; waited=" + (System.currentTimeMillis() - start) + "ms");<a name="line.320"></a>
-<span class="sourceLineNo">321</span> } else {<a name="line.321"></a>
-<span class="sourceLineNo">322</span> LOG.info("Only got " + res.length + " rows... retrying");<a name="line.322"></a>
-<span class="sourceLineNo">323</span> Thread.sleep(SLEEP_TIME);<a name="line.323"></a>
-<span class="sourceLineNo">324</span> }<a name="line.324"></a>
-<span class="sourceLineNo">325</span> } else {<a name="line.325"></a>
-<span class="sourceLineNo">326</span> break;<a name="line.326"></a>
-<span class="sourceLineNo">327</span> }<a name="line.327"></a>
-<span class="sourceLineNo">328</span> }<a name="line.328"></a>
-<span class="sourceLineNo">329</span> }<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span> /**<a name="line.331"></a>
-<span class="sourceLineNo">332</span> * Test for HBASE-8663<a name="line.332"></a>
-<span class="sourceLineNo">333</span> * <p><a name="line.333"></a>
-<span class="sourceLineNo">334</span> * Create two new Tables with colfamilies enabled for replication then run<a name="line.334"></a>
-<span class="sourceLineNo">335</span> * ReplicationAdmin.listReplicated(). Finally verify the table:colfamilies. Note:<a name="line.335"></a>
-<span class="sourceLineNo">336</span> * TestReplicationAdmin is a better place for this testing but it would need mocks.<a name="line.336"></a>
-<span class="sourceLineNo">337</span> */<a name="line.337"></a>
-<span class="sourceLineNo">338</span> @Test<a name="line.338"></a>
-<span class="sourceLineNo">339</span> public void testVerifyListReplicatedTable() throws Exception {<a name="line.339"></a>
-<span class="sourceLineNo">340</span> LOG.info("testVerifyListReplicatedTable");<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span> final String tName = "VerifyListReplicated_";<a name="line.342"></a>
-<span class="sourceLineNo">343</span> final String colFam = "cf1";<a name="line.343"></a>
-<span class="sourceLineNo">344</span> final int numOfTables = 3;<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span> Admin hadmin = utility1.getAdmin();<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> // Create Tables<a name="line.348"></a>
-<span class="sourceLineNo">349</span> for (int i = 0; i < numOfTables; i++) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span> hadmin.createTable(TableDescriptorBuilder.newBuilder(TableName.valueOf(tName + i))<a name="line.350"></a>
-<span class="sourceLineNo">351</span> .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(colFam))<a name="line.351"></a>
-<span class="sourceLineNo">352</span> .setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build())<a name="line.352"></a>
-<span class="sourceLineNo">353</span> .build());<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> // verify the result<a name="line.356"></a>
-<span class="sourceLineNo">357</span> List<TableCFs> replicationColFams = hbaseAdmin.listReplicatedTableCFs();<a name="line.357"></a>
-<span class="sourceLineNo">358</span> int[] match = new int[numOfTables]; // array of 3 with init value of zero<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span> for (int i = 0; i < replicationColFams.size(); i++) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span> TableCFs replicationEntry = replicationColFams.get(i);<a name="line.361"></a>
-<span class="sourceLineNo">362</span> String tn = replicationEntry.getTable().getNameAsString();<a name="line.362"></a>
-<span class="sourceLineNo">363</span> if (tn.startsWith(tName) && replicationEntry.getColumnFamilyMap().containsKey(colFam)) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span> int m = Integer.parseInt(tn.substring(tn.length() - 1)); // get the last digit<a name="line.364"></a>
-<span class="sourceLineNo">365</span> match[m]++; // should only increase once<a name="line.365"></a>
-<span class="sourceLineNo">366</span> }<a name="line.366"></a>
-<span class="sourceLineNo">367</span> }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span> // check the matching result<a name="line.369"></a>
-<span class="sourceLineNo">370</span> for (int i = 0; i < match.length; i++) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span> assertTrue("listReplicated() does not match table " + i, (match[i] == 1));<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> // drop tables<a name="line.374"></a>
-<span class="sourceLineNo">375</span> for (int i = 0; i < numOfTables; i++) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span> TableName tableName = TableName.valueOf(tName + i);<a name="line.376"></a>
-<span class="sourceLineNo">377</span> hadmin.disableTable(tableName);<a name="line.377"></a>
-<span class="sourceLineNo">378</span> hadmin.deleteTable(tableName);<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> hadmin.close();<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> /**<a name="line.384"></a>
-<span class="sourceLineNo">385</span> * Test for HBase-15259 WALEdits under replay will also be replicated<a name="line.385"></a>
-<span class="sourceLineNo">386</span> */<a name="line.386"></a>
-<span class="sourceLineNo">387</span> @Test<a name="line.387"></a>
-<span class="sourceLineNo">388</span> public void testReplicationInReplay() throws Exception {<a name="line.388"></a>
-<span class="sourceLineNo">389</span> final TableName tableName = htable1.getName();<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> HRegion region = utility1.getMiniHBaseCluster().getRegions(tableName).get(0);<a name="line.391"></a>
-<span class="sourceLineNo">392</span> RegionInfo hri = region.getRegionInfo();<a name="line.392"></a>
-<span class="sourceLineNo">393</span> NavigableMap<byte[], Integer> scopes = new TreeMap<>(Bytes.BYTES_COMPARATOR);<a name="line.393"></a>
-<span class="sourceLineNo">394</span> for (byte[] fam : htable1.getDescriptor().getColumnFamilyNames()) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span> scopes.put(fam, 1);<a name="line.395"></a>
-<span class="sourceLineNo">396</span> }<a name="line.396"></a>
-<span class="sourceLineNo">397</span> final MultiVersionConcurrencyControl mvcc = new MultiVersionConcurrencyControl();<a name="line.397"></a>
-<span class="sourceLineNo">398</span> int index = utility1.getMiniHBaseCluster().getServerWith(hri.getRegionName());<a name="line.398"></a>
-<span class="sourceLineNo">399</span> WAL wal = utility1.getMiniHBaseCluster().getRegionServer(index).getWAL(region.getRegionInfo());<a name="line.399"></a>
-<span class="sourceLineNo">400</span> final byte[] rowName = Bytes.toBytes("testReplicationInReplay");<a name="line.400"></a>
-<span class="sourceLineNo">401</span> final byte[] qualifier = Bytes.toBytes("q");<a name="line.401"></a>
-<span class="sourceLineNo">402</span> final byte[] value = Bytes.toBytes("v");<a name="line.402"></a>
-<span class="sourceLineNo">403</span> WALEdit edit = new WALEdit(true);<a name="line.403"></a>
-<span class="sourceLineNo">404</span> long now = EnvironmentEdgeManager.currentTime();<a name="line.404"></a>
-<span class="sourceLineNo">405</span> edit.add(new KeyValue(rowName, famName, qualifier, now, value));<a name="line.405"></a>
-<span class="sourceLineNo">406</span> WALKeyImpl walKey = new WALKeyImpl(hri.getEncodedNameAsBytes(), tableName, now, mvcc, scopes);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> wal.append(hri, walKey, edit, true);<a name="line.407"></a>
-<span class="sourceLineNo">408</span> wal.sync();<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span> Get get = new Get(rowName);<a name="line.410"></a>
-<span class="sourceLineNo">411</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span> if (i == NB_RETRIES - 1) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span> break;<a name="line.413"></a>
-<span class="sourceLineNo">414</span> }<a name="line.414"></a>
-<span class="sourceLineNo">415</span> Result res = htable2.get(get);<a name="line.415"></a>
-<span class="sourceLineNo">416</span> if (res.size() >= 1) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span> fail("Not supposed to be replicated for " + Bytes.toString(res.getRow()));<a name="line.417"></a>
-<span class="sourceLineNo">418</span> } else {<a name="line.418"></a>
-<span class="sourceLineNo">419</span> LOG.info("Row not replicated, let's wait a bit more...");<a name="line.419"></a>
-<span class="sourceLineNo">420</span> Thread.sleep(SLEEP_TIME);<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>}<a name="line.424"></a>
+<span class="sourceLineNo">071</span> @ClassRule<a name="line.71"></a>
+<span class="sourceLineNo">072</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.72"></a>
+<span class="sourceLineNo">073</span> HBaseClassTestRule.forClass(TestReplicationSmallTests.class);<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span> private static final Logger LOG = LoggerFactory.getLogger(TestReplicationSmallTests.class);<a name="line.75"></a>
+<span class="sourceLineNo">076</span> private static final String PEER_ID = "2";<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span> @Parameter<a name="line.78"></a>
+<span class="sourceLineNo">079</span> public boolean serialPeer;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span> @Override<a name="line.81"></a>
+<span class="sourceLineNo">082</span> protected boolean isSerialPeer() {<a name="line.82"></a>
+<span class="sourceLineNo">083</span> return serialPeer;<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> @Parameters(name = "{index}: serialPeer={0}")<a name="line.86"></a>
+<span class="sourceLineNo">087</span> public static List<Boolean> parameters() {<a name="line.87"></a>
+<span class="sourceLineNo">088</span> return ImmutableList.of(true, false);<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> @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public void setUp() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> cleanUp();<a name="line.93"></a>
+<span class="sourceLineNo">094</span> }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span> /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * Verify that version and column delete marker types are replicated correctly.<a name="line.97"></a>
+<span class="sourceLineNo">098</span> */<a name="line.98"></a>
+<span class="sourceLineNo">099</span> @Test<a name="line.99"></a>
+<span class="sourceLineNo">100</span> public void testDeleteTypes() throws Exception {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> LOG.info("testDeleteTypes");<a name="line.101"></a>
+<span class="sourceLineNo">102</span> final byte[] v1 = Bytes.toBytes("v1");<a name="line.102"></a>
+<span class="sourceLineNo">103</span> final byte[] v2 = Bytes.toBytes("v2");<a name="line.103"></a>
+<span class="sourceLineNo">104</span> final byte[] v3 = Bytes.toBytes("v3");<a name="line.104"></a>
+<span class="sourceLineNo">105</span> htable1 = utility1.getConnection().getTable(tableName);<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span> long t = EnvironmentEdgeManager.currentTime();<a name="line.107"></a>
+<span class="sourceLineNo">108</span> // create three versions for "row"<a name="line.108"></a>
+<span class="sourceLineNo">109</span> Put put = new Put(row);<a name="line.109"></a>
+<span class="sourceLineNo">110</span> put.addColumn(famName, row, t, v1);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> htable1.put(put);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span> put = new Put(row);<a name="line.113"></a>
+<span class="sourceLineNo">114</span> put.addColumn(famName, row, t + 1, v2);<a name="line.114"></a>
+<span class="sourceLineNo">115</span> htable1.put(put);<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span> put = new Put(row);<a name="line.117"></a>
+<span class="sourceLineNo">118</span> put.addColumn(famName, row, t + 2, v3);<a name="line.118"></a>
+<span class="sourceLineNo">119</span> htable1.put(put);<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span> Get get = new Get(row);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> get.readAllVersions();<a name="line.122"></a>
+<span class="sourceLineNo">123</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span> if (i == NB_RETRIES - 1) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span> fail("Waited too much time for put replication");<a name="line.125"></a>
+<span class="sourceLineNo">126</span> }<a name="line.126"></a>
+<span class="sourceLineNo">127</span> Result res = htable2.get(get);<a name="line.127"></a>
+<span class="sourceLineNo">128</span> if (res.size() < 3) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span> LOG.info("Rows not available");<a name="line.129"></a>
+<span class="sourceLineNo">130</span> Thread.sleep(SLEEP_TIME);<a name="line.130"></a>
+<span class="sourceLineNo">131</span> } else {<a name="line.131"></a>
+<span class="sourceLineNo">132</span> assertArrayEquals(CellUtil.cloneValue(res.rawCells()[0]), v3);<a name="line.132"></a>
+<span class="sourceLineNo">133</span> assertArrayEquals(CellUtil.cloneValue(res.rawCells()[1]), v2);<a name="line.133"></a>
+<span class="sourceLineNo">134</span> assertArrayEquals(CellUtil.cloneValue(res.rawCells()[2]), v1);<a name="line.134"></a>
+<span class="sourceLineNo">135</span> break;<a name="line.135"></a>
+<span class="sourceLineNo">136</span> }<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
+<span class="sourceLineNo">138</span> // place a version delete marker (delete last version)<a name="line.138"></a>
+<span class="sourceLineNo">139</span> Delete d = new Delete(row);<a name="line.139"></a>
+<span class="sourceLineNo">140</span> d.addColumn(famName, row, t);<a name="line.140"></a>
+<span class="sourceLineNo">141</span> htable1.delete(d);<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span> get = new Get(row);<a name="line.143"></a>
+<span class="sourceLineNo">144</span> get.readAllVersions();<a name="line.144"></a>
+<span class="sourceLineNo">145</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> if (i == NB_RETRIES - 1) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span> fail("Waited too much time for put replication");<a name="line.147"></a>
+<span class="sourceLineNo">148</span> }<a name="line.148"></a>
+<span class="sourceLineNo">149</span> Result res = htable2.get(get);<a name="line.149"></a>
+<span class="sourceLineNo">150</span> if (res.size() > 2) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> LOG.info("Version not deleted");<a name="line.151"></a>
+<span class="sourceLineNo">152</span> Thread.sleep(SLEEP_TIME);<a name="line.152"></a>
+<span class="sourceLineNo">153</span> } else {<a name="line.153"></a>
+<span class="sourceLineNo">154</span> assertArrayEquals(CellUtil.cloneValue(res.rawCells()[0]), v3);<a name="line.154"></a>
+<span class="sourceLineNo">155</span> assertArrayEquals(CellUtil.cloneValue(res.rawCells()[1]), v2);<a name="line.155"></a>
+<span class="sourceLineNo">156</span> break;<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><a name="line.159"></a>
+<span class="sourceLineNo">160</span> // place a column delete marker<a name="line.160"></a>
+<span class="sourceLineNo">161</span> d = new Delete(row);<a name="line.161"></a>
+<span class="sourceLineNo">162</span> d.addColumns(famName, row, t + 2);<a name="line.162"></a>
+<span class="sourceLineNo">163</span> htable1.delete(d);<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span> // now *both* of the remaining version should be deleted<a name="line.165"></a>
+<span class="sourceLineNo">166</span> // at the replica<a name="line.166"></a>
+<span class="sourceLineNo">167</span> get = new Get(row);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> if (i == NB_RETRIES - 1) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span> fail("Waited too much time for del replication");<a name="line.170"></a>
+<span class="sourceLineNo">171</span> }<a name="line.171"></a>
+<span class="sourceLineNo">172</span> Result res = htable2.get(get);<a name="line.172"></a>
+<span class="sourceLineNo">173</span> if (res.size() >= 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> LOG.info("Rows not deleted");<a name="line.174"></a>
+<span class="sourceLineNo">175</span> Thread.sleep(SLEEP_TIME);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> } else {<a name="line.176"></a>
+<span class="sourceLineNo">177</span> break;<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span> }<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> * Add a row, check it's replicated, delete it, check's gone<a name="line.183"></a>
+<span class="sourceLineNo">184</span> */<a name="line.184"></a>
+<span class="sourceLineNo">185</span> @Test<a name="line.185"></a>
+<span class="sourceLineNo">186</span> public void testSimplePutDelete() throws Exception {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> LOG.info("testSimplePutDelete");<a name="line.187"></a>
+<span class="sourceLineNo">188</span> runSimplePutDeleteTest();<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> /**<a name="line.191"></a>
+<span class="sourceLineNo">192</span> * Try a small batch upload using the write buffer, check it's replicated<a name="line.192"></a>
+<span class="sourceLineNo">193</span> */<a name="line.193"></a>
+<span class="sourceLineNo">194</span> @Test<a name="line.194"></a>
+<span class="sourceLineNo">195</span> public void testSmallBatch() throws Exception {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> LOG.info("testSmallBatch");<a name="line.196"></a>
+<span class="sourceLineNo">197</span> runSmallBatchTest();<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> * Test disable/enable replication, trying to insert, make sure nothing's replicated, enable it,<a name="line.201"></a>
+<span class="sourceLineNo">202</span> * the insert should be replicated<a name="line.202"></a>
+<span class="sourceLineNo">203</span> */<a name="line.203"></a>
+<span class="sourceLineNo">204</span> @Test<a name="line.204"></a>
+<span class="sourceLineNo">205</span> public void testDisableEnable() throws Exception {<a name="line.205"></a>
+<span class="sourceLineNo">206</span> // Test disabling replication<a name="line.206"></a>
+<span class="sourceLineNo">207</span> hbaseAdmin.disableReplicationPeer(PEER_ID);<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span> byte[] rowkey = Bytes.toBytes("disable enable");<a name="line.209"></a>
+<span class="sourceLineNo">210</span> Put put = new Put(rowkey);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> put.addColumn(famName, row, row);<a name="line.211"></a>
+<span class="sourceLineNo">212</span> htable1.put(put);<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> Get get = new Get(rowkey);<a name="line.214"></a>
+<span class="sourceLineNo">215</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> Result res = htable2.get(get);<a name="line.216"></a>
+<span class="sourceLineNo">217</span> if (res.size() >= 1) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span> fail("Replication wasn't disabled");<a name="line.218"></a>
+<span class="sourceLineNo">219</span> } else {<a name="line.219"></a>
+<span class="sourceLineNo">220</span> LOG.info("Row not replicated, let's wait a bit more...");<a name="line.220"></a>
+<span class="sourceLineNo">221</span> Thread.sleep(SLEEP_TIME);<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> // Test enable replication<a name="line.225"></a>
+<span class="sourceLineNo">226</span> hbaseAdmin.enableReplicationPeer(PEER_ID);<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span> Result res = htable2.get(get);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> if (res.isEmpty()) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span> LOG.info("Row not available");<a name="line.231"></a>
+<span class="sourceLineNo">232</span> Thread.sleep(SLEEP_TIME);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> } else {<a name="line.233"></a>
+<span class="sourceLineNo">234</span> assertArrayEquals(row, res.value());<a name="line.234"></a>
+<span class="sourceLineNo">235</span> return;<a name="line.235"></a>
+<span class="sourceLineNo">236</span> }<a name="line.236"></a>
+<span class="sourceLineNo">237</span> }<a name="line.237"></a>
+<span class="sourceLineNo">238</span> fail("Waited too much time for put replication");<a name="line.238"></a>
+<span class="sourceLineNo">239</span> }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span> /**<a name="line.241"></a>
+<span class="sourceLineNo">242</span> * Integration test for TestReplicationAdmin, removes and re-add a peer cluster<a name="line.242"></a>
+<span class="sourceLineNo">243</span> */<a name="line.243"></a>
+<span class="sourceLineNo">244</span> @Test<a name="line.244"></a>
+<span class="sourceLineNo">245</span> public void testAddAndRemoveClusters() throws Exception {<a name="line.245"></a>
+<span class="sourceLineNo">246</span> LOG.info("testAddAndRemoveClusters");<a name="line.246"></a>
+<span class="sourceLineNo">247</span> hbaseAdmin.removeReplicationPeer(PEER_ID);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> Thread.sleep(SLEEP_TIME);<a name="line.248"></a>
+<span class="sourceLineNo">249</span> byte[] rowKey = Bytes.toBytes("Won't be replicated");<a name="line.249"></a>
+<span class="sourceLineNo">250</span> Put put = new Put(rowKey);<a name="line.250"></a>
+<span class="sourceLineNo">251</span> put.addColumn(famName, row, row);<a name="line.251"></a>
+<span class="sourceLineNo">252</span> htable1.put(put);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span> Get get = new Get(rowKey);<a name="line.254"></a>
+<span class="sourceLineNo">255</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span> if (i == NB_RETRIES - 1) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> break;<a name="line.257"></a>
+<span class="sourceLineNo">258</span> }<a name="line.258"></a>
+<span class="sourceLineNo">259</span> Result res = htable2.get(get);<a name="line.259"></a>
+<span class="sourceLineNo">260</span> if (res.size() >= 1) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span> fail("Not supposed to be replicated");<a name="line.261"></a>
+<span class="sourceLineNo">262</span> } else {<a name="line.262"></a>
+<span class="sourceLineNo">263</span> LOG.info("Row not replicated, let's wait a bit more...");<a name="line.263"></a>
+<span class="sourceLineNo">264</span> Thread.sleep(SLEEP_TIME);<a name="line.264"></a>
+<span class="sourceLineNo">265</span> }<a name="line.265"></a>
+<span class="sourceLineNo">266</span> }<a name="line.266"></a>
+<span class="sourceLineNo">267</span> ReplicationPeerConfig rpc =<a name="line.267"></a>
+<span class="sourceLineNo">268</span> ReplicationPeerConfig.newBuilder().setClusterKey(utility2.getClusterKey()).build();<a name="line.268"></a>
+<span class="sourceLineNo">269</span> hbaseAdmin.addReplicationPeer(PEER_ID, rpc);<a name="line.269"></a>
+<span class="sourceLineNo">270</span> Thread.sleep(SLEEP_TIME);<a name="line.270"></a>
+<span class="sourceLineNo">271</span> rowKey = Bytes.toBytes("do rep");<a name="line.271"></a>
+<span class="sourceLineNo">272</span> put = new Put(rowKey);<a name="line.272"></a>
+<span class="sourceLineNo">273</span> put.addColumn(famName, row, row);<a name="line.273"></a>
+<span class="sourceLineNo">274</span> LOG.info("Adding new row");<a name="line.274"></a>
+<span class="sourceLineNo">275</span> htable1.put(put);<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span> get = new Get(rowKey);<a name="line.277"></a>
+<span class="sourceLineNo">278</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> if (i == NB_RETRIES - 1) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span> fail("Waited too much time for put replication");<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> Result res = htable2.get(get);<a name="line.282"></a>
+<span class="sourceLineNo">283</span> if (res.isEmpty()) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span> LOG.info("Row not available");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> Thread.sleep(SLEEP_TIME * i);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> } else {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> assertArrayEquals(row, res.value());<a name="line.287"></a>
+<span class="sourceLineNo">288</span> break;<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> }<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span> /**<a name="line.293"></a>
+<span class="sourceLineNo">294</span> * Do a more intense version testSmallBatch, one that will trigger wal rolling and other<a name="line.294"></a>
+<span class="sourceLineNo">295</span> * non-trivial code paths<a name="line.295"></a>
+<span class="sourceLineNo">296</span> */<a name="line.296"></a>
+<span class="sourceLineNo">297</span> @Test<a name="line.297"></a>
+<span class="sourceLineNo">298</span> public void testLoading() throws Exception {<a name="line.298"></a>
+<span class="sourceLineNo">299</span> LOG.info("Writing out rows to table1 in testLoading");<a name="line.299"></a>
+<span class="sourceLineNo">300</span> List<Put> puts = new ArrayList<>(NB_ROWS_IN_BIG_BATCH);<a name="line.300"></a>
+<span class="sourceLineNo">301</span> for (int i = 0; i < NB_ROWS_IN_BIG_BATCH; i++) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span> Put put = new Put(Bytes.toBytes(i));<a name="line.302"></a>
+<span class="sourceLineNo">303</span> put.addColumn(famName, row, row);<a name="line.303"></a>
+<span class="sourceLineNo">304</span> puts.add(put);<a name="line.304"></a>
+<span class="sourceLineNo">305</span> }<a name="line.305"></a>
+<span class="sourceLineNo">306</span> // The puts will be iterated through and flushed only when the buffer<a name="line.306"></a>
+<span class="sourceLineNo">307</span> // size is reached.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> htable1.put(puts);<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> Scan scan = new Scan();<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span> ResultScanner scanner = htable1.getScanner(scan);<a name="line.312"></a>
+<span class="sourceLineNo">313</span> Result[] res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> scanner.close();<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> assertEquals(NB_ROWS_IN_BIG_BATCH, res.length);<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span> LOG.info("Looking in table2 for replicated rows in testLoading");<a name="line.318"></a>
+<span class="sourceLineNo">319</span> long start = System.currentTimeMillis();<a name="line.319"></a>
+<span class="sourceLineNo">320</span> // Retry more than NB_RETRIES. As it was, retries were done in 5 seconds and we'd fail<a name="line.320"></a>
+<span class="sourceLineNo">321</span> // sometimes.<a name="line.321"></a>
+<span class="sourceLineNo">322</span> final long retries = NB_RETRIES * 10;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> for (int i = 0; i < retries; i++) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> scan = new Scan();<a name="line.324"></a>
+<span class="sourceLineNo">325</span> scanner = htable2.getScanner(scan);<a name="line.325"></a>
+<span class="sourceLineNo">326</span> res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.326"></a>
+<span class="sourceLineNo">327</span> scanner.close();<a name="line.327"></a>
+<span class="sourceLineNo">328</span> if (res.length != NB_ROWS_IN_BIG_BATCH) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span> if (i == retries - 1) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> int lastRow = -1;<a name="line.330"></a>
+<span class="sourceLineNo">331</span> for (Result result : res) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span> int currentRow = Bytes.toInt(result.getRow());<a name="line.332"></a>
+<span class="sourceLineNo">333</span> for (int row = lastRow + 1; row < currentRow; row++) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> LOG.error("Row missing: " + row);<a name="line.334"></a>
+<span class="sourceLineNo">335</span> }<a name="line.335"></a>
+<span class="sourceLineNo">336</span> lastRow = currentRow;<a name="line.336"></a>
+<span class="sourceLineNo">337</span> }<a name="line.337"></a>
+<span class="sourceLineNo">338</span> LOG.error("Last row: " + lastRow);<a name="line.338"></a>
+<span class="sourceLineNo">339</span> fail("Waited too much time for normal batch replication, " + res.length + " instead of "<a name="line.339"></a>
+<span class="sourceLineNo">340</span> + NB_ROWS_IN_BIG_BATCH + "; waited=" + (System.currentTimeMillis() - start) + "ms");<a name="line.340"></a>
+<span class="sourceLineNo">341</span> } else {<a name="line.341"></a>
+<span class="sourceLineNo">342</span> LOG.info("Only got " + res.length + " rows... retrying");<a name="line.342"></a>
+<span class="sourceLineNo">343</span> Thread.sleep(SLEEP_TIME);<a name="line.343"></a>
+<span class="sourceLineNo">344</span> }<a name="line.344"></a>
+<span class="sourceLineNo">345</span> } else {<a name="line.345"></a>
+<span class="sourceLineNo">346</span> break;<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> }<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> * Test for HBASE-8663<a name="line.352"></a>
+<span class="sourceLineNo">353</span> * <p><a name="line.353"></a>
+<span class="sourceLineNo">354</span> * Create two new Tables with colfamilies enabled for replication then run<a name="line.354"></a>
+<span class="sourceLineNo">355</span> * ReplicationAdmin.listReplicated(). Finally verify the table:colfamilies. Note:<a name="line.355"></a>
+<span class="sourceLineNo">356</span> * TestReplicationAdmin is a better place for this testing but it would need mocks.<a name="line.356"></a>
+<span class="sourceLineNo">357</span> */<a name="line.357"></a>
+<span class="sourceLineNo">358</span> @Test<a name="line.358"></a>
+<span class="sourceLineNo">359</span> public void testVerifyListReplicatedTable() throws Exception {<a name="line.359"></a>
+<span class="sourceLineNo">360</span> LOG.info("testVerifyListReplicatedTable");<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> final String tName = "VerifyListReplicated_";<a name="line.362"></a>
+<span class="sourceLineNo">363</span> final String colFam = "cf1";<a name="line.363"></a>
+<span class="sourceLineNo">364</span> final int numOfTables = 3;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span> Admin hadmin = utility1.getAdmin();<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span> // Create Tables<a name="line.368"></a>
+<span class="sourceLineNo">369</span> for (int i = 0; i < numOfTables; i++) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span> hadmin.createTable(TableDescriptorBuilder.newBuilder(TableName.valueOf(tName + i))<a name="line.370"></a>
+<span class="sourceLineNo">371</span> .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(colFam))<a name="line.371"></a>
+<span class="sourceLineNo">372</span> .setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build())<a name="line.372"></a>
+<span class="sourceLineNo">373</span> .build());<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> // verify the result<a name="line.376"></a>
+<span class="sourceLineNo">377</span> List<TableCFs> replicationColFams = hbaseAdmin.listReplicatedTableCFs();<a name="line.377"></a>
+<span class="sourceLineNo">378</span> int[] match = new int[numOfTables]; // array of 3 with init value of zero<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span> for (int i = 0; i < replicationColFams.size(); i++) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span> TableCFs replicationEntry = replicationColFams.get(i);<a name="line.381"></a>
+<span class="sourceLineNo">382</span> String tn = replicationEntry.getTable().getNameAsString();<a name="line.382"></a>
+<span class="sourceLineNo">383</span> if (tn.startsWith(tName) && replicationEntry.getColumnFamilyMap().containsKey(colFam)) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span> int m = Integer.parseInt(tn.substring(tn.length() - 1)); // get the last digit<a name="line.384"></a>
+<span class="sourceLineNo">385</span> match[m]++; // should only increase once<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> // check the matching result<a name="line.389"></a>
+<span class="sourceLineNo">390</span> for (int i = 0; i < match.length; i++) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> assertTrue("listReplicated() does not match table " + i, (match[i] == 1));<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> // drop tables<a name="line.394"></a>
+<span class="sourceLineNo">395</span> for (int i = 0; i < numOfTables; i++) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span> TableName tableName = TableName.valueOf(tName + i);<a name="line.396"></a>
+<span class="sourceLineNo">397</span> hadmin.disableTable(tableName);<a name="line.397"></a>
+<span class="sourceLineNo">398</span> hadmin.deleteTable(tableName);<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> hadmin.close();<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> * Test for HBase-15259 WALEdits under replay will also be replicated<a name="line.405"></a>
+<span class="sourceLineNo">406</span> */<a name="line.406"></a>
+<span class="sourceLineNo">407</span> @Test<a name="line.407"></a>
+<span class="sourceLineNo">408</span> public void testReplicationInReplay() throws Exception {<a name="line.408"></a>
+<span class="sourceLineNo">409</span> final TableName tableName = htable1.getName();<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span> HRegion region = utility1.getMiniHBaseCluster().getRegions(tableName).get(0);<a name="line.411"></a>
+<span class="sourceLineNo">412</span> RegionInfo hri = region.getRegionInfo();<a name="line.412"></a>
+<span class="sourceLineNo">413</span> NavigableMap<byte[], Integer> scopes = new TreeMap<>(Bytes.BYTES_COMPARATOR);<a name="line.413"></a>
+<span class="sourceLineNo">414</span> for (byte[] fam : htable1.getDescriptor().getColumnFamilyNames()) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span> scopes.put(fam, 1);<a name="line.415"></a>
+<span class="sourceLineNo">416</span> }<a name="line.416"></a>
+<span class="sourceLineNo">417</span> final MultiVersionConcurrencyControl mvcc = new MultiVersionConcurrencyControl();<a name="line.417"></a>
+<span class="sourceLineNo">418</span> int index = utility1.getMiniHBaseCluster().getServerWith(hri.getRegionName());<a name="line.418"></a>
+<span class="sourceLineNo">419</span> WAL wal = utility1.getMiniHBaseCluster().getRegionServer(index).getWAL(region.getRegionInfo());<a name="line.419"></a>
+<span class="sourceLineNo">420</span> final byte[] rowName = Bytes.toBytes("testReplicationInReplay");<a name="line.420"></a>
+<span class="sourceLineNo">421</span> final byte[] qualifier = Bytes.toBytes("q");<a name="line.421"></a>
+<span class="sourceLineNo">422</span> final byte[] value = Bytes.toBytes("v");<a name="line.422"></a>
+<span class="sourceLineNo">423</span> WALEdit edit = new WALEdit(true);<a name="line.423"></a>
+<span class="sourceLineNo">424</span> long now = EnvironmentEdgeManager.currentTime();<a name="line.424"></a>
+<span class="sourceLineNo">425</span> edit.add(new KeyValue(rowName, famName, qualifier, now, value));<a name="line.425"></a>
+<span class="sourceLineNo">426</span> WALKeyImpl walKey = new WALKeyImpl(hri.getEncodedNameAsBytes(), tableName, now, mvcc, scopes);<a name="line.426"></a>
+<span class="sourceLineNo">427</span> wal.append(hri, walKey, edit, true);<a name="line.427"></a>
+<span class="sourceLineNo">428</span> wal.sync();<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> Get get = new Get(rowName);<a name="line.430"></a>
+<span class="sourceLineNo">431</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> if (i == NB_RETRIES - 1) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span> break;<a name="line.433"></a>
+<span class="sourceLineNo">434</span> }<a name="line.434"></a>
+<span class="sourceLineNo">435</span> Result res = htable2.get(get);<a name="line.435"></a>
+<span class="sourceLineNo">436</span> if (res.size() >= 1) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> fail("Not supposed to be replicated for " + Bytes.toString(res.getRow()));<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } else {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> LOG.info("Row not replicated, let's wait a bit more...");<a name="line.439"></a>
+<span class="sourceLineNo">440</span> Thread.sleep(SLEEP_TIME);<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>}<a name="line.444"></a>
[05/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
@@ -72,7 +72,7 @@
<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
<span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
<span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
<span class="sourceLineNo">069</span><a name="line.69"></a>
<span class="sourceLineNo">070</span> @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
<span class="sourceLineNo">078</span> @BeforeClass<a name="line.78"></a>
<span class="sourceLineNo">079</span> public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
<span class="sourceLineNo">080</span> TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span> admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span> public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span> // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span> public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> final List<RegionServerThread> rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span> for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span> }<a name="line.103"></a>
-<span class="sourceLineNo">104</span> // Wait for all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span> public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span> return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> }<a name="line.111"></a>
-<span class="sourceLineNo">112</span> }<a name="line.112"></a>
-<span class="sourceLineNo">113</span> return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span> public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.118"></a>
-<span class="sourceLineNo">119</span> for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span> // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span> }<a name="line.141"></a>
-<span class="sourceLineNo">142</span> });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span> @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span> public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span> });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span> // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span> public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span> int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span> admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span> if (admin.getPeersCount() <= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span> Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span> }<a name="line.183"></a>
-<span class="sourceLineNo">184</span> // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span> doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span> public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span> // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span> LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span> });<a name="line.196"></a>
-<span class="sourceLineNo">197</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<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> @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span> public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span> // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span> RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span> byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span> for (int i = 0; i < 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> if (row.length > 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span> Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span> }<a name="line.222"></a>
-<span class="sourceLineNo">223</span> }<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span> null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span> public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span> public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span> return failure;<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> admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span> utility1.deleteTableData(tableName);<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> @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span> //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span> // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span> doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span> public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span> });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span> //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span> //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span> "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<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> @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span> //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span> "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> }<a name="line.297"></a>
+<span class="sourceLineNo">081</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span> public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span> // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> final List<RegionServerThread> rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span> for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span> // Wait for all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span> public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span> for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span> return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> }<a name="line.110"></a>
+<span class="sourceLineNo">111</span> }<a name="line.111"></a>
+<span class="sourceLineNo">112</span> return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span> public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.117"></a>
+<span class="sourceLineNo">118</span> for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span> // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span> @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span> public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<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><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span> public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span> public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<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> doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin.removePeer("testCustomReplicationEndpoint");<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span> int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span> admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span> if (admin.getPeersCount() <= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> }<a name="line.182"></a>
+<span class="sourceLineNo">183</span> // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span> doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span> public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span> // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span> LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span> });<a name="line.195"></a>
+<span class="sourceLineNo">196</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span> }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span> @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span> public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span> final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span> // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span> RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span> byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span> for (int i = 0; i < 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> if (row.length > 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span> null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span> public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<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> @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span> public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span> }<a name="line.242"></a>
+<span class="sourceLineNo">243</span> });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span> utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span> @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span> //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span> doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span> public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span> });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span> //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<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> @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span> //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span> "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span> //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span> "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<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><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span> /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span> allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span> the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> */<a name="line.309"></a>
-<span class="sourceLineNo">310</span> String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span> long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span> String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span> String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span> String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span> long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span> source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span> source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span> source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span> source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span> source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span> source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span> source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span> source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span> verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span> verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span> verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> doPut(connection, row);<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><a name="line.363"></a>
-<span class="sourceLineNo">364</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span> Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span> }<a name="line.369"></a>
-<span class="sourceLineNo">370</span> }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span> private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span> static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> static volatile List<Entry> lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span> @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span> /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span> allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span> the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span> String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span> String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span> long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span> String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span> source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span> source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span> source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span> source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span> source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span> source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span> source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span> source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span> source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span> verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span> verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span> verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span> doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span> }<a name="line.360"></a>
+<span class="sourceLineNo">361</span> }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span> try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span> Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span> put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span> }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span> private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span> return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span> }<a name="line.374"></a>
+<span class="sourceLineNo">375</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span> Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span> static volatile List<Entry> lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span> public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> replicateCount.set(0);<a name="line.391"></a>
<span class="sourceLineNo">392</span> contructedCount.incrementAndGet();<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>
@@ -441,127 +441,131 @@
<span class="sourceLineNo">433</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
<span class="sourceLineNo">434</span> static boolean failedOnce;<a name="line.434"></a>
<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span> }<a name="line.441"></a>
-<span class="sourceLineNo">442</span> return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span> }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span> @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span> failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return new FailingDummyReplicator(entries, ordinal);<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> protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span> private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span> public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span> }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span> @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span> return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span> }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span> @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span> // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span> if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span> } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span> failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span> return new FailingDummyReplicator(entries, ordinal);<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><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span> @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span> public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> return ordinal;<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><a name="line.470"></a>
-<span class="sourceLineNo">471</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span> super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span> }<a name="line.475"></a>
+<span class="sourceLineNo">460</span> protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span> private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span> super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span> this.ordinal = ordinal;<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> @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span> public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span> return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span> }<a name="line.472"></a>
+<span class="sourceLineNo">473</span> }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span> public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span> }<a name="line.480"></a>
-<span class="sourceLineNo">481</span> }<a name="line.481"></a>
-<span class="sourceLineNo">482</span> }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span> static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span> @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span> try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span> // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span> doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span> } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span> return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span> }<a name="line.502"></a>
-<span class="sourceLineNo">503</span> }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span> super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span> }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span> @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span> public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span> @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span> // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span> doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span> return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span> }<a name="line.506"></a>
+<span class="sourceLineNo">507</span> }<a name="line.507"></a>
<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span> @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span> try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span> super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span> doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span> ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span> public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span> @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span> int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> for (int i = size-1; i >= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span> row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> cells.remove(i);<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> return entry;<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> }<a name="line.537"></a>
-<span class="sourceLineNo">538</span> }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span> @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span> public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span> return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span> public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span> return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span> @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span> try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span> doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span> } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span> ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span> return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span> }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span> @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span> public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span> @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (int i = size-1; i >= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span> row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span> cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span> }<a name="line.536"></a>
+<span class="sourceLineNo">537</span> }<a name="line.537"></a>
+<span class="sourceLineNo">538</span> return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> });<a name="line.540"></a>
+<span class="sourceLineNo">541</span> }<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> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span> @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span> public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> return entry;<a name="line.549"></a>
<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span> return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
<span class="sourceLineNo">555</span> }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
[17/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
index aadad07..b8921c5 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
@@ -30,419 +30,471 @@
<span class="sourceLineNo">022</span>import static org.junit.Assert.assertTrue;<a name="line.22"></a>
<span class="sourceLineNo">023</span>import static org.junit.Assert.fail;<a name="line.23"></a>
<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.Objects;<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>import org.apache.hadoop.hbase.Cell;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HConstants;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.TableName;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.Result;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.Table;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.security.User;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.junit.After;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.junit.AfterClass;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.BeforeClass;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.ClassRule;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.Test;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.experimental.categories.Category;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.slf4j.Logger;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.slf4j.LoggerFactory;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest;<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>/**<a name="line.57"></a>
-<span class="sourceLineNo">058</span> * minicluster tests that validate that quota entries are properly set in the quota table<a name="line.58"></a>
-<span class="sourceLineNo">059</span> */<a name="line.59"></a>
-<span class="sourceLineNo">060</span>@Category({ClientTests.class, MediumTests.class})<a name="line.60"></a>
-<span class="sourceLineNo">061</span>public class TestQuotaAdmin {<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span> @ClassRule<a name="line.63"></a>
-<span class="sourceLineNo">064</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.64"></a>
-<span class="sourceLineNo">065</span> HBaseClassTestRule.forClass(TestQuotaAdmin.class);<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span> private static final Logger LOG = LoggerFactory.getLogger(TestQuotaAdmin.class);<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span> private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span> @BeforeClass<a name="line.71"></a>
-<span class="sourceLineNo">072</span> public static void setUpBeforeClass() throws Exception {<a name="line.72"></a>
-<span class="sourceLineNo">073</span> TEST_UTIL.getConfiguration().setBoolean(QuotaUtil.QUOTA_CONF_KEY, true);<a name="line.73"></a>
-<span class="sourceLineNo">074</span> TEST_UTIL.getConfiguration().setInt(QuotaCache.REFRESH_CONF_KEY, 2000);<a name="line.74"></a>
-<span class="sourceLineNo">075</span> TEST_UTIL.getConfiguration().setInt("hbase.hstore.compactionThreshold", 10);<a name="line.75"></a>
-<span class="sourceLineNo">076</span> TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);<a name="line.76"></a>
-<span class="sourceLineNo">077</span> TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);<a name="line.77"></a>
-<span class="sourceLineNo">078</span> TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);<a name="line.78"></a>
-<span class="sourceLineNo">079</span> TEST_UTIL.getConfiguration().setBoolean("hbase.master.enabletable.roundrobin", true);<a name="line.79"></a>
-<span class="sourceLineNo">080</span> TEST_UTIL.startMiniCluster(1);<a name="line.80"></a>
-<span class="sourceLineNo">081</span> TEST_UTIL.waitTableAvailable(QuotaTableUtil.QUOTA_TABLE_NAME);<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> @After<a name="line.84"></a>
-<span class="sourceLineNo">085</span> public void clearQuotaTable() throws Exception {<a name="line.85"></a>
-<span class="sourceLineNo">086</span> if (TEST_UTIL.getAdmin().tableExists(QuotaUtil.QUOTA_TABLE_NAME)) {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> TEST_UTIL.getAdmin().disableTable(QuotaUtil.QUOTA_TABLE_NAME);<a name="line.87"></a>
-<span class="sourceLineNo">088</span> TEST_UTIL.getAdmin().truncateTable(QuotaUtil.QUOTA_TABLE_NAME, false);<a name="line.88"></a>
-<span class="sourceLineNo">089</span> }<a name="line.89"></a>
-<span class="sourceLineNo">090</span> }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span> @AfterClass<a name="line.92"></a>
-<span class="sourceLineNo">093</span> public static void tearDownAfterClass() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> TEST_UTIL.shutdownMiniCluster();<a name="line.94"></a>
-<span class="sourceLineNo">095</span> }<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span> @Test<a name="line.97"></a>
-<span class="sourceLineNo">098</span> public void testThrottleType() throws Exception {<a name="line.98"></a>
-<span class="sourceLineNo">099</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.99"></a>
-<span class="sourceLineNo">100</span> String userName = User.getCurrent().getShortName();<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span> admin.setQuota(QuotaSettingsFactory<a name="line.102"></a>
-<span class="sourceLineNo">103</span> .throttleUser(userName, ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES));<a name="line.103"></a>
-<span class="sourceLineNo">104</span> admin.setQuota(QuotaSettingsFactory<a name="line.104"></a>
-<span class="sourceLineNo">105</span> .throttleUser(userName, ThrottleType.WRITE_NUMBER, 12, TimeUnit.MINUTES));<a name="line.105"></a>
-<span class="sourceLineNo">106</span> admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true));<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span> try (QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration())) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> int countThrottle = 0;<a name="line.109"></a>
-<span class="sourceLineNo">110</span> int countGlobalBypass = 0;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> for (QuotaSettings settings: scanner) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span> switch (settings.getQuotaType()) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span> case THROTTLE:<a name="line.113"></a>
-<span class="sourceLineNo">114</span> ThrottleSettings throttle = (ThrottleSettings)settings;<a name="line.114"></a>
-<span class="sourceLineNo">115</span> if (throttle.getSoftLimit() == 6) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span> assertEquals(ThrottleType.READ_NUMBER, throttle.getThrottleType());<a name="line.116"></a>
-<span class="sourceLineNo">117</span> } else if (throttle.getSoftLimit() == 12) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> assertEquals(ThrottleType.WRITE_NUMBER, throttle.getThrottleType());<a name="line.118"></a>
-<span class="sourceLineNo">119</span> } else {<a name="line.119"></a>
-<span class="sourceLineNo">120</span> fail("should not come here, because don't set quota with this limit");<a name="line.120"></a>
-<span class="sourceLineNo">121</span> }<a name="line.121"></a>
-<span class="sourceLineNo">122</span> assertEquals(userName, throttle.getUserName());<a name="line.122"></a>
-<span class="sourceLineNo">123</span> assertEquals(null, throttle.getTableName());<a name="line.123"></a>
-<span class="sourceLineNo">124</span> assertEquals(null, throttle.getNamespace());<a name="line.124"></a>
-<span class="sourceLineNo">125</span> assertEquals(TimeUnit.MINUTES, throttle.getTimeUnit());<a name="line.125"></a>
-<span class="sourceLineNo">126</span> countThrottle++;<a name="line.126"></a>
-<span class="sourceLineNo">127</span> break;<a name="line.127"></a>
-<span class="sourceLineNo">128</span> case GLOBAL_BYPASS:<a name="line.128"></a>
-<span class="sourceLineNo">129</span> countGlobalBypass++;<a name="line.129"></a>
-<span class="sourceLineNo">130</span> break;<a name="line.130"></a>
-<span class="sourceLineNo">131</span> default:<a name="line.131"></a>
-<span class="sourceLineNo">132</span> fail("unexpected settings type: " + settings.getQuotaType());<a name="line.132"></a>
-<span class="sourceLineNo">133</span> }<a name="line.133"></a>
-<span class="sourceLineNo">134</span> }<a name="line.134"></a>
-<span class="sourceLineNo">135</span> assertEquals(2, countThrottle);<a name="line.135"></a>
-<span class="sourceLineNo">136</span> assertEquals(1, countGlobalBypass);<a name="line.136"></a>
-<span class="sourceLineNo">137</span> }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span> admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a name="line.139"></a>
-<span class="sourceLineNo">140</span> assertNumResults(1, null);<a name="line.140"></a>
-<span class="sourceLineNo">141</span> admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, false));<a name="line.141"></a>
-<span class="sourceLineNo">142</span> assertNumResults(0, null);<a name="line.142"></a>
-<span class="sourceLineNo">143</span> }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span> @Test<a name="line.145"></a>
-<span class="sourceLineNo">146</span> public void testSimpleScan() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.147"></a>
-<span class="sourceLineNo">148</span> String userName = User.getCurrent().getShortName();<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span> admin.setQuota(QuotaSettingsFactory<a name="line.150"></a>
-<span class="sourceLineNo">151</span> .throttleUser(userName, ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES));<a name="line.151"></a>
-<span class="sourceLineNo">152</span> admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true));<a name="line.152"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.ArrayList;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Objects;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.concurrent.TimeUnit;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.Cell;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HConstants;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.TableName;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.Put;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.Result;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.client.Table;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.security.User;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.After;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.AfterClass;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.BeforeClass;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.junit.ClassRule;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.junit.Test;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.junit.experimental.categories.Category;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.slf4j.Logger;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.slf4j.LoggerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest;<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> * minicluster tests that validate that quota entries are properly set in the quota table<a name="line.67"></a>
+<span class="sourceLineNo">068</span> */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>@Category({ClientTests.class, MediumTests.class})<a name="line.69"></a>
+<span class="sourceLineNo">070</span>public class TestQuotaAdmin {<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span> @ClassRule<a name="line.72"></a>
+<span class="sourceLineNo">073</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.73"></a>
+<span class="sourceLineNo">074</span> HBaseClassTestRule.forClass(TestQuotaAdmin.class);<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span> private static final Logger LOG = LoggerFactory.getLogger(TestQuotaAdmin.class);<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span> private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span> @BeforeClass<a name="line.80"></a>
+<span class="sourceLineNo">081</span> public static void setUpBeforeClass() throws Exception {<a name="line.81"></a>
+<span class="sourceLineNo">082</span> TEST_UTIL.getConfiguration().setBoolean(QuotaUtil.QUOTA_CONF_KEY, true);<a name="line.82"></a>
+<span class="sourceLineNo">083</span> TEST_UTIL.getConfiguration().setInt(QuotaCache.REFRESH_CONF_KEY, 2000);<a name="line.83"></a>
+<span class="sourceLineNo">084</span> TEST_UTIL.getConfiguration().setInt("hbase.hstore.compactionThreshold", 10);<a name="line.84"></a>
+<span class="sourceLineNo">085</span> TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);<a name="line.85"></a>
+<span class="sourceLineNo">086</span> TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);<a name="line.86"></a>
+<span class="sourceLineNo">087</span> TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);<a name="line.87"></a>
+<span class="sourceLineNo">088</span> TEST_UTIL.getConfiguration().setBoolean("hbase.master.enabletable.roundrobin", true);<a name="line.88"></a>
+<span class="sourceLineNo">089</span> TEST_UTIL.startMiniCluster(1);<a name="line.89"></a>
+<span class="sourceLineNo">090</span> TEST_UTIL.waitTableAvailable(QuotaTableUtil.QUOTA_TABLE_NAME);<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> @After<a name="line.93"></a>
+<span class="sourceLineNo">094</span> public void clearQuotaTable() throws Exception {<a name="line.94"></a>
+<span class="sourceLineNo">095</span> if (TEST_UTIL.getAdmin().tableExists(QuotaUtil.QUOTA_TABLE_NAME)) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span> TEST_UTIL.getAdmin().disableTable(QuotaUtil.QUOTA_TABLE_NAME);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> TEST_UTIL.getAdmin().truncateTable(QuotaUtil.QUOTA_TABLE_NAME, false);<a name="line.97"></a>
+<span class="sourceLineNo">098</span> }<a name="line.98"></a>
+<span class="sourceLineNo">099</span> }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span> @AfterClass<a name="line.101"></a>
+<span class="sourceLineNo">102</span> public static void tearDownAfterClass() throws Exception {<a name="line.102"></a>
+<span class="sourceLineNo">103</span> TEST_UTIL.shutdownMiniCluster();<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> @Test<a name="line.106"></a>
+<span class="sourceLineNo">107</span> public void testThrottleType() throws Exception {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.108"></a>
+<span class="sourceLineNo">109</span> String userName = User.getCurrent().getShortName();<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span> admin.setQuota(<a name="line.111"></a>
+<span class="sourceLineNo">112</span> QuotaSettingsFactory.throttleUser(userName, ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES));<a name="line.112"></a>
+<span class="sourceLineNo">113</span> admin.setQuota(QuotaSettingsFactory<a name="line.113"></a>
+<span class="sourceLineNo">114</span> .throttleUser(userName, ThrottleType.WRITE_NUMBER, 12, TimeUnit.MINUTES));<a name="line.114"></a>
+<span class="sourceLineNo">115</span> admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true));<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span> try (QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration())) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span> int countThrottle = 0;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> int countGlobalBypass = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span> for (QuotaSettings settings: scanner) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span> switch (settings.getQuotaType()) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span> case THROTTLE:<a name="line.122"></a>
+<span class="sourceLineNo">123</span> ThrottleSettings throttle = (ThrottleSettings)settings;<a name="line.123"></a>
+<span class="sourceLineNo">124</span> if (throttle.getSoftLimit() == 6) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span> assertEquals(ThrottleType.READ_NUMBER, throttle.getThrottleType());<a name="line.125"></a>
+<span class="sourceLineNo">126</span> } else if (throttle.getSoftLimit() == 12) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span> assertEquals(ThrottleType.WRITE_NUMBER, throttle.getThrottleType());<a name="line.127"></a>
+<span class="sourceLineNo">128</span> } else {<a name="line.128"></a>
+<span class="sourceLineNo">129</span> fail("should not come here, because don't set quota with this limit");<a name="line.129"></a>
+<span class="sourceLineNo">130</span> }<a name="line.130"></a>
+<span class="sourceLineNo">131</span> assertEquals(userName, throttle.getUserName());<a name="line.131"></a>
+<span class="sourceLineNo">132</span> assertEquals(null, throttle.getTableName());<a name="line.132"></a>
+<span class="sourceLineNo">133</span> assertEquals(null, throttle.getNamespace());<a name="line.133"></a>
+<span class="sourceLineNo">134</span> assertEquals(TimeUnit.MINUTES, throttle.getTimeUnit());<a name="line.134"></a>
+<span class="sourceLineNo">135</span> countThrottle++;<a name="line.135"></a>
+<span class="sourceLineNo">136</span> break;<a name="line.136"></a>
+<span class="sourceLineNo">137</span> case GLOBAL_BYPASS:<a name="line.137"></a>
+<span class="sourceLineNo">138</span> countGlobalBypass++;<a name="line.138"></a>
+<span class="sourceLineNo">139</span> break;<a name="line.139"></a>
+<span class="sourceLineNo">140</span> default:<a name="line.140"></a>
+<span class="sourceLineNo">141</span> fail("unexpected settings type: " + settings.getQuotaType());<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> assertEquals(2, countThrottle);<a name="line.144"></a>
+<span class="sourceLineNo">145</span> assertEquals(1, countGlobalBypass);<a name="line.145"></a>
+<span class="sourceLineNo">146</span> }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span> admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a name="line.148"></a>
+<span class="sourceLineNo">149</span> assertNumResults(1, null);<a name="line.149"></a>
+<span class="sourceLineNo">150</span> admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, false));<a name="line.150"></a>
+<span class="sourceLineNo">151</span> assertNumResults(0, null);<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> try (QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration())) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span> int countThrottle = 0;<a name="line.155"></a>
-<span class="sourceLineNo">156</span> int countGlobalBypass = 0;<a name="line.156"></a>
-<span class="sourceLineNo">157</span> for (QuotaSettings settings: scanner) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span> LOG.debug(Objects.toString(settings));<a name="line.158"></a>
-<span class="sourceLineNo">159</span> switch (settings.getQuotaType()) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span> case THROTTLE:<a name="line.160"></a>
-<span class="sourceLineNo">161</span> ThrottleSettings throttle = (ThrottleSettings)settings;<a name="line.161"></a>
-<span class="sourceLineNo">162</span> assertEquals(userName, throttle.getUserName());<a name="line.162"></a>
-<span class="sourceLineNo">163</span> assertEquals(null, throttle.getTableName());<a name="line.163"></a>
-<span class="sourceLineNo">164</span> assertEquals(null, throttle.getNamespace());<a name="line.164"></a>
-<span class="sourceLineNo">165</span> assertEquals(6, throttle.getSoftLimit());<a name="line.165"></a>
-<span class="sourceLineNo">166</span> assertEquals(TimeUnit.MINUTES, throttle.getTimeUnit());<a name="line.166"></a>
-<span class="sourceLineNo">167</span> countThrottle++;<a name="line.167"></a>
-<span class="sourceLineNo">168</span> break;<a name="line.168"></a>
-<span class="sourceLineNo">169</span> case GLOBAL_BYPASS:<a name="line.169"></a>
-<span class="sourceLineNo">170</span> countGlobalBypass++;<a name="line.170"></a>
-<span class="sourceLineNo">171</span> break;<a name="line.171"></a>
-<span class="sourceLineNo">172</span> default:<a name="line.172"></a>
-<span class="sourceLineNo">173</span> fail("unexpected settings type: " + settings.getQuotaType());<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> assertEquals(1, countThrottle);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> assertEquals(1, countGlobalBypass);<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> admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a name="line.180"></a>
-<span class="sourceLineNo">181</span> assertNumResults(1, null);<a name="line.181"></a>
-<span class="sourceLineNo">182</span> admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, false));<a name="line.182"></a>
-<span class="sourceLineNo">183</span> assertNumResults(0, null);<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> @Test<a name="line.186"></a>
-<span class="sourceLineNo">187</span> public void testQuotaRetrieverFilter() throws Exception {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.188"></a>
-<span class="sourceLineNo">189</span> TableName[] tables = new TableName[] {<a name="line.189"></a>
-<span class="sourceLineNo">190</span> TableName.valueOf("T0"), TableName.valueOf("T01"), TableName.valueOf("NS0:T2"),<a name="line.190"></a>
-<span class="sourceLineNo">191</span> };<a name="line.191"></a>
-<span class="sourceLineNo">192</span> String[] namespaces = new String[] { "NS0", "NS01", "NS2" };<a name="line.192"></a>
-<span class="sourceLineNo">193</span> String[] users = new String[] { "User0", "User01", "User2" };<a name="line.193"></a>
+<span class="sourceLineNo">154</span> @Test<a name="line.154"></a>
+<span class="sourceLineNo">155</span> public void testSimpleScan() throws Exception {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.156"></a>
+<span class="sourceLineNo">157</span> String userName = User.getCurrent().getShortName();<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span> admin.setQuota(QuotaSettingsFactory<a name="line.159"></a>
+<span class="sourceLineNo">160</span> .throttleUser(userName, ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES));<a name="line.160"></a>
+<span class="sourceLineNo">161</span> admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true));<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span> try (QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration())) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> int countThrottle = 0;<a name="line.164"></a>
+<span class="sourceLineNo">165</span> int countGlobalBypass = 0;<a name="line.165"></a>
+<span class="sourceLineNo">166</span> for (QuotaSettings settings: scanner) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span> LOG.debug(Objects.toString(settings));<a name="line.167"></a>
+<span class="sourceLineNo">168</span> switch (settings.getQuotaType()) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> case THROTTLE:<a name="line.169"></a>
+<span class="sourceLineNo">170</span> ThrottleSettings throttle = (ThrottleSettings)settings;<a name="line.170"></a>
+<span class="sourceLineNo">171</span> assertEquals(userName, throttle.getUserName());<a name="line.171"></a>
+<span class="sourceLineNo">172</span> assertEquals(null, throttle.getTableName());<a name="line.172"></a>
+<span class="sourceLineNo">173</span> assertEquals(null, throttle.getNamespace());<a name="line.173"></a>
+<span class="sourceLineNo">174</span> assertEquals(6, throttle.getSoftLimit());<a name="line.174"></a>
+<span class="sourceLineNo">175</span> assertEquals(TimeUnit.MINUTES, throttle.getTimeUnit());<a name="line.175"></a>
+<span class="sourceLineNo">176</span> countThrottle++;<a name="line.176"></a>
+<span class="sourceLineNo">177</span> break;<a name="line.177"></a>
+<span class="sourceLineNo">178</span> case GLOBAL_BYPASS:<a name="line.178"></a>
+<span class="sourceLineNo">179</span> countGlobalBypass++;<a name="line.179"></a>
+<span class="sourceLineNo">180</span> break;<a name="line.180"></a>
+<span class="sourceLineNo">181</span> default:<a name="line.181"></a>
+<span class="sourceLineNo">182</span> fail("unexpected settings type: " + settings.getQuotaType());<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> assertEquals(1, countThrottle);<a name="line.185"></a>
+<span class="sourceLineNo">186</span> assertEquals(1, countGlobalBypass);<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> admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a name="line.189"></a>
+<span class="sourceLineNo">190</span> assertNumResults(1, null);<a name="line.190"></a>
+<span class="sourceLineNo">191</span> admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, false));<a name="line.191"></a>
+<span class="sourceLineNo">192</span> assertNumResults(0, null);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> }<a name="line.193"></a>
<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span> for (String user: users) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span> admin.setQuota(QuotaSettingsFactory<a name="line.196"></a>
-<span class="sourceLineNo">197</span> .throttleUser(user, ThrottleType.REQUEST_NUMBER, 1, TimeUnit.MINUTES));<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span> for (TableName table: tables) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span> admin.setQuota(QuotaSettingsFactory<a name="line.200"></a>
-<span class="sourceLineNo">201</span> .throttleUser(user, table, ThrottleType.REQUEST_NUMBER, 2, TimeUnit.MINUTES));<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> for (String ns: namespaces) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span> admin.setQuota(QuotaSettingsFactory<a name="line.205"></a>
-<span class="sourceLineNo">206</span> .throttleUser(user, ns, ThrottleType.REQUEST_NUMBER, 3, TimeUnit.MINUTES));<a name="line.206"></a>
-<span class="sourceLineNo">207</span> }<a name="line.207"></a>
-<span class="sourceLineNo">208</span> }<a name="line.208"></a>
-<span class="sourceLineNo">209</span> assertNumResults(21, null);<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> for (TableName table: tables) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span> admin.setQuota(QuotaSettingsFactory<a name="line.212"></a>
-<span class="sourceLineNo">213</span> .throttleTable(table, ThrottleType.REQUEST_NUMBER, 4, TimeUnit.MINUTES));<a name="line.213"></a>
-<span class="sourceLineNo">214</span> }<a name="line.214"></a>
-<span class="sourceLineNo">215</span> assertNumResults(24, null);<a name="line.215"></a>
+<span class="sourceLineNo">195</span> @Test<a name="line.195"></a>
+<span class="sourceLineNo">196</span> public void testMultiQuotaThrottling() throws Exception {<a name="line.196"></a>
+<span class="sourceLineNo">197</span> byte[] FAMILY = Bytes.toBytes("testFamily");<a name="line.197"></a>
+<span class="sourceLineNo">198</span> byte[] ROW = Bytes.toBytes("testRow");<a name="line.198"></a>
+<span class="sourceLineNo">199</span> byte[] QUALIFIER = Bytes.toBytes("testQualifier");<a name="line.199"></a>
+<span class="sourceLineNo">200</span> byte[] VALUE = Bytes.toBytes("testValue");<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.202"></a>
+<span class="sourceLineNo">203</span> TableName tableName = TableName.valueOf("testMultiQuotaThrottling");<a name="line.203"></a>
+<span class="sourceLineNo">204</span> TableDescriptor desc = TableDescriptorBuilder.newBuilder(tableName)<a name="line.204"></a>
+<span class="sourceLineNo">205</span> .setColumnFamily(ColumnFamilyDescriptorBuilder.of(FAMILY)).build();<a name="line.205"></a>
+<span class="sourceLineNo">206</span> admin.createTable(desc);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span> // Set up the quota.<a name="line.208"></a>
+<span class="sourceLineNo">209</span> admin.setQuota(QuotaSettingsFactory.throttleTable(tableName, ThrottleType.WRITE_NUMBER, 6,<a name="line.209"></a>
+<span class="sourceLineNo">210</span> TimeUnit.SECONDS));<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span> Thread.sleep(1000);<a name="line.212"></a>
+<span class="sourceLineNo">213</span> TEST_UTIL.getRSForFirstRegionInTable(tableName).getRegionServerRpcQuotaManager().<a name="line.213"></a>
+<span class="sourceLineNo">214</span> getQuotaCache().triggerCacheRefresh();<a name="line.214"></a>
+<span class="sourceLineNo">215</span> Thread.sleep(1000);<a name="line.215"></a>
<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> for (String ns: namespaces) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span> admin.setQuota(QuotaSettingsFactory<a name="line.218"></a>
-<span class="sourceLineNo">219</span> .throttleNamespace(ns, ThrottleType.REQUEST_NUMBER, 5, TimeUnit.MINUTES));<a name="line.219"></a>
-<span class="sourceLineNo">220</span> }<a name="line.220"></a>
-<span class="sourceLineNo">221</span> assertNumResults(27, null);<a name="line.221"></a>
+<span class="sourceLineNo">217</span> Table t = TEST_UTIL.getConnection().getTable(tableName);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> try {<a name="line.218"></a>
+<span class="sourceLineNo">219</span> int size = 5;<a name="line.219"></a>
+<span class="sourceLineNo">220</span> List actions = new ArrayList();<a name="line.220"></a>
+<span class="sourceLineNo">221</span> Object[] results = new Object[size];<a name="line.221"></a>
<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span> assertNumResults(7, new QuotaFilter().setUserFilter("User0"));<a name="line.223"></a>
-<span class="sourceLineNo">224</span> assertNumResults(0, new QuotaFilter().setUserFilter("User"));<a name="line.224"></a>
-<span class="sourceLineNo">225</span> assertNumResults(21, new QuotaFilter().setUserFilter("User.*"));<a name="line.225"></a>
-<span class="sourceLineNo">226</span> assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setTableFilter("T0"));<a name="line.226"></a>
-<span class="sourceLineNo">227</span> assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setTableFilter("NS.*"));<a name="line.227"></a>
-<span class="sourceLineNo">228</span> assertNumResults(0, new QuotaFilter().setUserFilter("User.*").setTableFilter("T"));<a name="line.228"></a>
-<span class="sourceLineNo">229</span> assertNumResults(6, new QuotaFilter().setUserFilter("User.*").setTableFilter("T.*"));<a name="line.229"></a>
-<span class="sourceLineNo">230</span> assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS0"));<a name="line.230"></a>
-<span class="sourceLineNo">231</span> assertNumResults(0, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS"));<a name="line.231"></a>
-<span class="sourceLineNo">232</span> assertNumResults(9, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS.*"));<a name="line.232"></a>
-<span class="sourceLineNo">233</span> assertNumResults(6, new QuotaFilter().setUserFilter("User.*")<a name="line.233"></a>
-<span class="sourceLineNo">234</span> .setTableFilter("T0").setNamespaceFilter("NS0"));<a name="line.234"></a>
-<span class="sourceLineNo">235</span> assertNumResults(1, new QuotaFilter().setTableFilter("T0"));<a name="line.235"></a>
-<span class="sourceLineNo">236</span> assertNumResults(0, new QuotaFilter().setTableFilter("T"));<a name="line.236"></a>
-<span class="sourceLineNo">237</span> assertNumResults(2, new QuotaFilter().setTableFilter("T.*"));<a name="line.237"></a>
-<span class="sourceLineNo">238</span> assertNumResults(3, new QuotaFilter().setTableFilter(".*T.*"));<a name="line.238"></a>
-<span class="sourceLineNo">239</span> assertNumResults(1, new QuotaFilter().setNamespaceFilter("NS0"));<a name="line.239"></a>
-<span class="sourceLineNo">240</span> assertNumResults(0, new QuotaFilter().setNamespaceFilter("NS"));<a name="line.240"></a>
-<span class="sourceLineNo">241</span> assertNumResults(3, new QuotaFilter().setNamespaceFilter("NS.*"));<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span> for (String user: users) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span> admin.setQuota(QuotaSettingsFactory.unthrottleUser(user));<a name="line.244"></a>
-<span class="sourceLineNo">245</span> for (TableName table: tables) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span> admin.setQuota(QuotaSettingsFactory.unthrottleUser(user, table));<a name="line.246"></a>
-<span class="sourceLineNo">247</span> }<a name="line.247"></a>
-<span class="sourceLineNo">248</span> for (String ns: namespaces) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span> admin.setQuota(QuotaSettingsFactory.unthrottleUser(user, ns));<a name="line.249"></a>
-<span class="sourceLineNo">250</span> }<a name="line.250"></a>
-<span class="sourceLineNo">251</span> }<a name="line.251"></a>
-<span class="sourceLineNo">252</span> assertNumResults(6, null);<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span> for (TableName table: tables) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span> admin.setQuota(QuotaSettingsFactory.unthrottleTable(table));<a name="line.255"></a>
-<span class="sourceLineNo">256</span> }<a name="line.256"></a>
-<span class="sourceLineNo">257</span> assertNumResults(3, null);<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span> for (String ns: namespaces) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span> admin.setQuota(QuotaSettingsFactory.unthrottleNamespace(ns));<a name="line.260"></a>
-<span class="sourceLineNo">261</span> }<a name="line.261"></a>
-<span class="sourceLineNo">262</span> assertNumResults(0, null);<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> @Test<a name="line.265"></a>
-<span class="sourceLineNo">266</span> public void testSetGetRemoveSpaceQuota() throws Exception {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.267"></a>
-<span class="sourceLineNo">268</span> final TableName tn = TableName.valueOf("sq_table1");<a name="line.268"></a>
-<span class="sourceLineNo">269</span> final long sizeLimit = 1024L * 1024L * 1024L * 1024L * 5L; // 5TB<a name="line.269"></a>
-<span class="sourceLineNo">270</span> final SpaceViolationPolicy violationPolicy = SpaceViolationPolicy.NO_WRITES;<a name="line.270"></a>
-<span class="sourceLineNo">271</span> QuotaSettings settings = QuotaSettingsFactory.limitTableSpace(tn, sizeLimit, violationPolicy);<a name="line.271"></a>
-<span class="sourceLineNo">272</span> admin.setQuota(settings);<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span> // Verify the Quotas in the table<a name="line.274"></a>
-<span class="sourceLineNo">275</span> try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span> ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.276"></a>
-<span class="sourceLineNo">277</span> try {<a name="line.277"></a>
-<span class="sourceLineNo">278</span> Result r = Iterables.getOnlyElement(scanner);<a name="line.278"></a>
-<span class="sourceLineNo">279</span> CellScanner cells = r.cellScanner();<a name="line.279"></a>
-<span class="sourceLineNo">280</span> assertTrue("Expected to find a cell", cells.advance());<a name="line.280"></a>
-<span class="sourceLineNo">281</span> assertSpaceQuota(sizeLimit, violationPolicy, cells.current());<a name="line.281"></a>
-<span class="sourceLineNo">282</span> } finally {<a name="line.282"></a>
-<span class="sourceLineNo">283</span> scanner.close();<a name="line.283"></a>
-<span class="sourceLineNo">284</span> }<a name="line.284"></a>
-<span class="sourceLineNo">285</span> }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span> // Verify we can retrieve it via the QuotaRetriever API<a name="line.287"></a>
-<span class="sourceLineNo">288</span> QuotaRetriever scanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.288"></a>
-<span class="sourceLineNo">289</span> try {<a name="line.289"></a>
-<span class="sourceLineNo">290</span> assertSpaceQuota(sizeLimit, violationPolicy, Iterables.getOnlyElement(scanner));<a name="line.290"></a>
-<span class="sourceLineNo">291</span> } finally {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> scanner.close();<a name="line.292"></a>
-<span class="sourceLineNo">293</span> }<a name="line.293"></a>
+<span class="sourceLineNo">223</span> for (int i = 0; i < size; i++) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span> Put put1 = new Put(ROW);<a name="line.224"></a>
+<span class="sourceLineNo">225</span> put1.addColumn(FAMILY, QUALIFIER, VALUE);<a name="line.225"></a>
+<span class="sourceLineNo">226</span> actions.add(put1);<a name="line.226"></a>
+<span class="sourceLineNo">227</span> }<a name="line.227"></a>
+<span class="sourceLineNo">228</span> t.batch(actions, results);<a name="line.228"></a>
+<span class="sourceLineNo">229</span> t.batch(actions, results);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> } catch (IOException e) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span> fail("Not supposed to get ThrottlingExcepiton " + e);<a name="line.231"></a>
+<span class="sourceLineNo">232</span> } finally {<a name="line.232"></a>
+<span class="sourceLineNo">233</span> t.close();<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><a name="line.237"></a>
+<span class="sourceLineNo">238</span> @Test<a name="line.238"></a>
+<span class="sourceLineNo">239</span> public void testQuotaRetrieverFilter() throws Exception {<a name="line.239"></a>
+<span class="sourceLineNo">240</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> TableName[] tables = new TableName[] {<a name="line.241"></a>
+<span class="sourceLineNo">242</span> TableName.valueOf("T0"), TableName.valueOf("T01"), TableName.valueOf("NS0:T2"),<a name="line.242"></a>
+<span class="sourceLineNo">243</span> };<a name="line.243"></a>
+<span class="sourceLineNo">244</span> String[] namespaces = new String[] { "NS0", "NS01", "NS2" };<a name="line.244"></a>
+<span class="sourceLineNo">245</span> String[] users = new String[] { "User0", "User01", "User2" };<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span> for (String user: users) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span> admin.setQuota(QuotaSettingsFactory<a name="line.248"></a>
+<span class="sourceLineNo">249</span> .throttleUser(user, ThrottleType.REQUEST_NUMBER, 1, TimeUnit.MINUTES));<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span> for (TableName table: tables) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span> admin.setQuota(QuotaSettingsFactory<a name="line.252"></a>
+<span class="sourceLineNo">253</span> .throttleUser(user, table, ThrottleType.REQUEST_NUMBER, 2, TimeUnit.MINUTES));<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> for (String ns: namespaces) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.setQuota(QuotaSettingsFactory<a name="line.257"></a>
+<span class="sourceLineNo">258</span> .throttleUser(user, ns, ThrottleType.REQUEST_NUMBER, 3, TimeUnit.MINUTES));<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> assertNumResults(21, null);<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span> for (TableName table: tables) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span> admin.setQuota(QuotaSettingsFactory<a name="line.264"></a>
+<span class="sourceLineNo">265</span> .throttleTable(table, ThrottleType.REQUEST_NUMBER, 4, TimeUnit.MINUTES));<a name="line.265"></a>
+<span class="sourceLineNo">266</span> }<a name="line.266"></a>
+<span class="sourceLineNo">267</span> assertNumResults(24, null);<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span> for (String ns: namespaces) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span> admin.setQuota(QuotaSettingsFactory<a name="line.270"></a>
+<span class="sourceLineNo">271</span> .throttleNamespace(ns, ThrottleType.REQUEST_NUMBER, 5, TimeUnit.MINUTES));<a name="line.271"></a>
+<span class="sourceLineNo">272</span> }<a name="line.272"></a>
+<span class="sourceLineNo">273</span> assertNumResults(27, null);<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span> assertNumResults(7, new QuotaFilter().setUserFilter("User0"));<a name="line.275"></a>
+<span class="sourceLineNo">276</span> assertNumResults(0, new QuotaFilter().setUserFilter("User"));<a name="line.276"></a>
+<span class="sourceLineNo">277</span> assertNumResults(21, new QuotaFilter().setUserFilter("User.*"));<a name="line.277"></a>
+<span class="sourceLineNo">278</span> assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setTableFilter("T0"));<a name="line.278"></a>
+<span class="sourceLineNo">279</span> assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setTableFilter("NS.*"));<a name="line.279"></a>
+<span class="sourceLineNo">280</span> assertNumResults(0, new QuotaFilter().setUserFilter("User.*").setTableFilter("T"));<a name="line.280"></a>
+<span class="sourceLineNo">281</span> assertNumResults(6, new QuotaFilter().setUserFilter("User.*").setTableFilter("T.*"));<a name="line.281"></a>
+<span class="sourceLineNo">282</span> assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS0"));<a name="line.282"></a>
+<span class="sourceLineNo">283</span> assertNumResults(0, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS"));<a name="line.283"></a>
+<span class="sourceLineNo">284</span> assertNumResults(9, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS.*"));<a name="line.284"></a>
+<span class="sourceLineNo">285</span> assertNumResults(6, new QuotaFilter().setUserFilter("User.*")<a name="line.285"></a>
+<span class="sourceLineNo">286</span> .setTableFilter("T0").setNamespaceFilter("NS0"));<a name="line.286"></a>
+<span class="sourceLineNo">287</span> assertNumResults(1, new QuotaFilter().setTableFilter("T0"));<a name="line.287"></a>
+<span class="sourceLineNo">288</span> assertNumResults(0, new QuotaFilter().setTableFilter("T"));<a name="line.288"></a>
+<span class="sourceLineNo">289</span> assertNumResults(2, new QuotaFilter().setTableFilter("T.*"));<a name="line.289"></a>
+<span class="sourceLineNo">290</span> assertNumResults(3, new QuotaFilter().setTableFilter(".*T.*"));<a name="line.290"></a>
+<span class="sourceLineNo">291</span> assertNumResults(1, new QuotaFilter().setNamespaceFilter("NS0"));<a name="line.291"></a>
+<span class="sourceLineNo">292</span> assertNumResults(0, new QuotaFilter().setNamespaceFilter("NS"));<a name="line.292"></a>
+<span class="sourceLineNo">293</span> assertNumResults(3, new QuotaFilter().setNamespaceFilter("NS.*"));<a name="line.293"></a>
<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span> // Now, remove the quota<a name="line.295"></a>
-<span class="sourceLineNo">296</span> QuotaSettings removeQuota = QuotaSettingsFactory.removeTableSpaceLimit(tn);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> admin.setQuota(removeQuota);<a name="line.297"></a>
-<span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span> // Verify that the record doesn't exist in the table<a name="line.299"></a>
-<span class="sourceLineNo">300</span> try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span> ResultScanner rs = quotaTable.getScanner(new Scan());<a name="line.301"></a>
-<span class="sourceLineNo">302</span> try {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> assertNull("Did not expect to find a quota entry", rs.next());<a name="line.303"></a>
-<span class="sourceLineNo">304</span> } finally {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> rs.close();<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span> }<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span> // Verify that we can also not fetch it via the API<a name="line.309"></a>
-<span class="sourceLineNo">310</span> scanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.310"></a>
-<span class="sourceLineNo">311</span> try {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> assertNull("Did not expect to find a quota entry", scanner.next());<a name="line.312"></a>
-<span class="sourceLineNo">313</span> } finally {<a name="line.313"></a>
-<span class="sourceLineNo">314</span> scanner.close();<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><a name="line.317"></a>
-<span class="sourceLineNo">318</span> @Test<a name="line.318"></a>
-<span class="sourceLineNo">319</span> public void testSetModifyRemoveQuota() throws Exception {<a name="line.319"></a>
-<span class="sourceLineNo">320</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.320"></a>
-<span class="sourceLineNo">321</span> final TableName tn = TableName.valueOf("sq_table2");<a name="line.321"></a>
-<span class="sourceLineNo">322</span> final long originalSizeLimit = 1024L * 1024L * 1024L * 1024L * 5L; // 5TB<a name="line.322"></a>
-<span class="sourceLineNo">323</span> final SpaceViolationPolicy violationPolicy = SpaceViolationPolicy.NO_WRITES;<a name="line.323"></a>
-<span class="sourceLineNo">324</span> QuotaSettings settings = QuotaSettingsFactory.limitTableSpace(<a name="line.324"></a>
-<span class="sourceLineNo">325</span> tn, originalSizeLimit, violationPolicy);<a name="line.325"></a>
-<span class="sourceLineNo">326</span> admin.setQuota(settings);<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span> // Verify the Quotas in the table<a name="line.328"></a>
-<span class="sourceLineNo">329</span> try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.329"></a>
-<span class="sourceLineNo">330</span> ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.330"></a>
-<span class="sourceLineNo">331</span> try {<a name="line.331"></a>
-<span class="sourceLineNo">332</span> Result r = Iterables.getOnlyElement(scanner);<a name="line.332"></a>
-<span class="sourceLineNo">333</span> CellScanner cells = r.cellScanner();<a name="line.333"></a>
-<span class="sourceLineNo">334</span> assertTrue("Expected to find a cell", cells.advance());<a name="line.334"></a>
-<span class="sourceLineNo">335</span> assertSpaceQuota(originalSizeLimit, violationPolicy, cells.current());<a name="line.335"></a>
-<span class="sourceLineNo">336</span> } finally {<a name="line.336"></a>
-<span class="sourceLineNo">337</span> scanner.close();<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> // Verify we can retrieve it via the QuotaRetriever API<a name="line.341"></a>
-<span class="sourceLineNo">342</span> QuotaRetriever quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.342"></a>
-<span class="sourceLineNo">343</span> try {<a name="line.343"></a>
-<span class="sourceLineNo">344</span> assertSpaceQuota(originalSizeLimit, violationPolicy, Iterables.getOnlyElement(quotaScanner));<a name="line.344"></a>
-<span class="sourceLineNo">345</span> } finally {<a name="line.345"></a>
-<span class="sourceLineNo">346</span> quotaScanner.close();<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> // Setting a new size and policy should be reflected<a name="line.349"></a>
-<span class="sourceLineNo">350</span> final long newSizeLimit = 1024L * 1024L * 1024L * 1024L; // 1TB<a name="line.350"></a>
-<span class="sourceLineNo">351</span> final SpaceViolationPolicy newViolationPolicy = SpaceViolationPolicy.NO_WRITES_COMPACTIONS;<a name="line.351"></a>
-<span class="sourceLineNo">352</span> QuotaSettings newSettings = QuotaSettingsFactory.limitTableSpace(<a name="line.352"></a>
-<span class="sourceLineNo">353</span> tn, newSizeLimit, newViolationPolicy);<a name="line.353"></a>
-<span class="sourceLineNo">354</span> admin.setQuota(newSettings);<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span> // Verify the new Quotas in the table<a name="line.356"></a>
-<span class="sourceLineNo">357</span> try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span> ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.358"></a>
-<span class="sourceLineNo">359</span> try {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> Result r = Iterables.getOnlyElement(scanner);<a name="line.360"></a>
-<span class="sourceLineNo">361</span> CellScanner cells = r.cellScanner();<a name="line.361"></a>
-<span class="sourceLineNo">362</span> assertTrue("Expected to find a cell", cells.advance());<a name="line.362"></a>
-<span class="sourceLineNo">363</span> assertSpaceQuota(newSizeLimit, newViolationPolicy, cells.current());<a name="line.363"></a>
-<span class="sourceLineNo">364</span> } finally {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> scanner.close();<a name="line.365"></a>
-<span class="sourceLineNo">366</span> }<a name="line.366"></a>
+<span class="sourceLineNo">295</span> for (String user: users) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span> admin.setQuota(QuotaSettingsFactory.unthrottleUser(user));<a name="line.296"></a>
+<span class="sourceLineNo">297</span> for (TableName table: tables) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> admin.setQuota(QuotaSettingsFactory.unthrottleUser(user, table));<a name="line.298"></a>
+<span class="sourceLineNo">299</span> }<a name="line.299"></a>
+<span class="sourceLineNo">300</span> for (String ns: namespaces) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span> admin.setQuota(QuotaSettingsFactory.unthrottleUser(user, ns));<a name="line.301"></a>
+<span class="sourceLineNo">302</span> }<a name="line.302"></a>
+<span class="sourceLineNo">303</span> }<a name="line.303"></a>
+<span class="sourceLineNo">304</span> assertNumResults(6, null);<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span> for (TableName table: tables) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span> admin.setQuota(QuotaSettingsFactory.unthrottleTable(table));<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span> assertNumResults(3, null);<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span> for (String ns: namespaces) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span> admin.setQuota(QuotaSettingsFactory.unthrottleNamespace(ns));<a name="line.312"></a>
+<span class="sourceLineNo">313</span> }<a name="line.313"></a>
+<span class="sourceLineNo">314</span> assertNumResults(0, null);<a name="line.314"></a>
+<span class="sourceLineNo">315</span> }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span> @Test<a name="line.317"></a>
+<span class="sourceLineNo">318</span> public void testSetGetRemoveSpaceQuota() throws Exception {<a name="line.318"></a>
+<span class="sourceLineNo">319</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.319"></a>
+<span class="sourceLineNo">320</span> final TableName tn = TableName.valueOf("sq_table1");<a name="line.320"></a>
+<span class="sourceLineNo">321</span> final long sizeLimit = 1024L * 1024L * 1024L * 1024L * 5L; // 5TB<a name="line.321"></a>
+<span class="sourceLineNo">322</span> final SpaceViolationPolicy violationPolicy = SpaceViolationPolicy.NO_WRITES;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> QuotaSettings settings = QuotaSettingsFactory.limitTableSpace(tn, sizeLimit, violationPolicy);<a name="line.323"></a>
+<span class="sourceLineNo">324</span> admin.setQuota(settings);<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span> // Verify the Quotas in the table<a name="line.326"></a>
+<span class="sourceLineNo">327</span> try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span> ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.328"></a>
+<span class="sourceLineNo">329</span> try {<a name="line.329"></a>
+<span class="sourceLineNo">330</span> Result r = Iterables.getOnlyElement(scanner);<a name="line.330"></a>
+<span class="sourceLineNo">331</span> CellScanner cells = r.cellScanner();<a name="line.331"></a>
+<span class="sourceLineNo">332</span> assertTrue("Expected to find a cell", cells.advance());<a name="line.332"></a>
+<span class="sourceLineNo">333</span> assertSpaceQuota(sizeLimit, violationPolicy, cells.current());<a name="line.333"></a>
+<span class="sourceLineNo">334</span> } finally {<a name="line.334"></a>
+<span class="sourceLineNo">335</span> scanner.close();<a name="line.335"></a>
+<span class="sourceLineNo">336</span> }<a name="line.336"></a>
+<span class="sourceLineNo">337</span> }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span> // Verify we can retrieve it via the QuotaRetriever API<a name="line.339"></a>
+<span class="sourceLineNo">340</span> QuotaRetriever scanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.340"></a>
+<span class="sourceLineNo">341</span> try {<a name="line.341"></a>
+<span class="sourceLineNo">342</span> assertSpaceQuota(sizeLimit, violationPolicy, Iterables.getOnlyElement(scanner));<a name="line.342"></a>
+<span class="sourceLineNo">343</span> } finally {<a name="line.343"></a>
+<span class="sourceLineNo">344</span> scanner.close();<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> // Now, remove the quota<a name="line.347"></a>
+<span class="sourceLineNo">348</span> QuotaSettings removeQuota = QuotaSettingsFactory.removeTableSpaceLimit(tn);<a name="line.348"></a>
+<span class="sourceLineNo">349</span> admin.setQuota(removeQuota);<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span> // Verify that the record doesn't exist in the table<a name="line.351"></a>
+<span class="sourceLineNo">352</span> try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span> ResultScanner rs = quotaTable.getScanner(new Scan());<a name="line.353"></a>
+<span class="sourceLineNo">354</span> try {<a name="line.354"></a>
+<span class="sourceLineNo">355</span> assertNull("Did not expect to find a quota entry", rs.next());<a name="line.355"></a>
+<span class="sourceLineNo">356</span> } finally {<a name="line.356"></a>
+<span class="sourceLineNo">357</span> rs.close();<a name="line.357"></a>
+<span class="sourceLineNo">358</span> }<a name="line.358"></a>
+<span class="sourceLineNo">359</span> }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span> // Verify that we can also not fetch it via the API<a name="line.361"></a>
+<span class="sourceLineNo">362</span> scanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.362"></a>
+<span class="sourceLineNo">363</span> try {<a name="line.363"></a>
+<span class="sourceLineNo">364</span> assertNull("Did not expect to find a quota entry", scanner.next());<a name="line.364"></a>
+<span class="sourceLineNo">365</span> } finally {<a name="line.365"></a>
+<span class="sourceLineNo">366</span> scanner.close();<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> // Verify we can retrieve the new quota via the QuotaRetriever API<a name="line.369"></a>
-<span class="sourceLineNo">370</span> quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.370"></a>
-<span class="sourceLineNo">371</span> try {<a name="line.371"></a>
-<span class="sourceLineNo">372</span> assertSpaceQuota(newSizeLimit, newViolationPolicy, Iterables.getOnlyElement(quotaScanner));<a name="line.372"></a>
-<span class="sourceLineNo">373</span> } finally {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> quotaScanner.close();<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> // Now, remove the quota<a name="line.377"></a>
-<span class="sourceLineNo">378</span> QuotaSettings removeQuota = QuotaSettingsFactory.removeTableSpaceLimit(tn);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> admin.setQuota(removeQuota);<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span> // Verify that the record doesn't exist in the table<a name="line.381"></a>
-<span class="sourceLineNo">382</span> try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span> ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.383"></a>
-<span class="sourceLineNo">384</span> try {<a name="line.384"></a>
-<span class="sourceLineNo">385</span> assertNull("Did not expect to find a quota entry", scanner.next());<a name="line.385"></a>
-<span class="sourceLineNo">386</span> } finally {<a name="line.386"></a>
-<span class="sourceLineNo">387</span> scanner.close();<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><a name="line.390"></a>
-<span class="sourceLineNo">391</span> // Verify that we can also not fetch it via the API<a name="line.391"></a>
-<span class="sourceLineNo">392</span> quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.392"></a>
-<span class="sourceLineNo">393</span> try {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> assertNull("Did not expect to find a quota entry", quotaScanner.next());<a name="line.394"></a>
-<span class="sourceLineNo">395</span> } finally {<a name="line.395"></a>
-<span class="sourceLineNo">396</span> quotaScanner.close();<a name="line.396"></a>
-<span class="sourceLineNo">397</span> }<a name="line.397"></a>
-<span class="sourceLineNo">398</span> }<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span> private void assertNumResults(int expected, final QuotaFilter filter) throws Exception {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> assertEquals(expected, countResults(filter));<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> private void assertSpaceQuota(<a name="line.404"></a>
-<span class="sourceLineNo">405</span> long sizeLimit, SpaceViolationPolicy violationPolicy, Cell cell) throws Exception {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> Quotas q = QuotaTableUtil.quotasFromData(<a name="line.406"></a>
-<span class="sourceLineNo">407</span> cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());<a name="line.407"></a>
-<span class="sourceLineNo">408</span> assertTrue("Quota should have space quota defined", q.hasSpace());<a name="line.408"></a>
-<span class="sourceLineNo">409</span> QuotaProtos.SpaceQuota spaceQuota = q.getSpace();<a name="line.409"></a>
-<span class="sourceLineNo">410</span> assertEquals(sizeLimit, spaceQuota.getSoftLimit());<a name="line.410"></a>
-<span class="sourceLineNo">411</span> assertEquals(violationPolicy, ProtobufUtil.toViolationPolicy(spaceQuota.getViolationPolicy()));<a name="line.411"></a>
-<span class="sourceLineNo">412</span> }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span> private void assertSpaceQuota(<a name="line.414"></a>
-<span class="sourceLineNo">415</span> long sizeLimit, SpaceViolationPolicy violationPolicy, QuotaSettings actualSettings) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span> assertTrue("The actual QuotaSettings was not an instance of " + SpaceLimitSettings.class<a name="line.416"></a>
-<span class="sourceLineNo">417</span> + " but of " + actualSettings.getClass(), actualSettings instanceof SpaceLimitSettings);<a name="line.417"></a>
-<span class="sourceLineNo">418</span> SpaceLimitRequest spaceLimitRequest = ((SpaceLimitSettings) actualSettings).getProto();<a name="line.418"></a>
-<span class="sourceLineNo">419</span> assertEquals(sizeLimit, spaceLimitRequest.getQuota().getSoftLimit());<a name="line.419"></a>
-<span class="sourceLineNo">420</span> assertEquals(violationPolicy,<a name="line.420"></a>
-<span class="sourceLineNo">421</span> ProtobufUtil.toViolationPolicy(spaceLimitRequest.getQuota().getViolationPolicy()));<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> private int countResults(final QuotaFilter filter) throws Exception {<a name="line.424"></a>
-<span class="sourceLineNo">425</span> QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration(), filter);<a name="line.425"></a>
-<span class="sourceLineNo">426</span> try {<a name="line.426"></a>
-<span class="sourceLineNo">427</span> int count = 0;<a name="line.427"></a>
-<span class="sourceLineNo">428</span> for (QuotaSettings settings: scanner) {<a name="line.428"></a>
-<span class="sourceLineNo">429</span> LOG.debug(Objects.toString(settings));<a name="line.429"></a>
-<span class="sourceLineNo">430</span> count++;<a name="line.430"></a>
-<span class="sourceLineNo">431</span> }<a name="line.431"></a>
-<span class="sourceLineNo">432</span> return count;<a name="line.432"></a>
-<span class="sourceLineNo">433</span> } finally {<a name="line.433"></a>
-<span class="sourceLineNo">434</span> scanner.close();<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>}<a name="line.437"></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> @Test<a name="line.370"></a>
+<span class="sourceLineNo">371</span> public void testSetModifyRemoveQuota() throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span> Admin admin = TEST_UTIL.getAdmin();<a name="line.372"></a>
+<span class="sourceLineNo">373</span> final TableName tn = TableName.valueOf("sq_table2");<a name="line.373"></a>
+<span class="sourceLineNo">374</span> final long originalSizeLimit = 1024L * 1024L * 1024L * 1024L * 5L; // 5TB<a name="line.374"></a>
+<span class="sourceLineNo">375</span> final SpaceViolationPolicy violationPolicy = SpaceViolationPolicy.NO_WRITES;<a name="line.375"></a>
+<span class="sourceLineNo">376</span> QuotaSettings settings = QuotaSettingsFactory.limitTableSpace(tn, originalSizeLimit,<a name="line.376"></a>
+<span class="sourceLineNo">377</span> violationPolicy);<a name="line.377"></a>
+<span class="sourceLineNo">378</span> admin.setQuota(settings);<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span> // Verify the Quotas in the table<a name="line.380"></a>
+<span class="sourceLineNo">381</span> try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span> ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.382"></a>
+<span class="sourceLineNo">383</span> try {<a name="line.383"></a>
+<span class="sourceLineNo">384</span> Result r = Iterables.getOnlyElement(scanner);<a name="line.384"></a>
+<span class="sourceLineNo">385</span> CellScanner cells = r.cellScanner();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> assertTrue("Expected to find a cell", cells.advance());<a name="line.386"></a>
+<span class="sourceLineNo">387</span> assertSpaceQuota(originalSizeLimit, violationPolicy, cells.current());<a name="line.387"></a>
+<span class="sourceLineNo">388</span> } finally {<a name="line.388"></a>
+<span class="sourceLineNo">389</span> scanner.close();<a name="line.389"></a>
+<span class="sourceLineNo">390</span> }<a name="line.390"></a>
+<span class="sourceLineNo">391</span> }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span> // Verify we can retrieve it via the QuotaRetriever API<a name="line.393"></a>
+<span class="sourceLineNo">394</span> QuotaRetriever quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.394"></a>
+<span class="sourceLineNo">395</span> try {<a name="line.395"></a>
+<span class="sourceLineNo">396</span> assertSpaceQuota(originalSizeLimit, violationPolicy, Iterables.getOnlyElement(quotaScanner));<a name="line.396"></a>
+<span class="sourceLineNo">397</span> } finally {<a name="line.397"></a>
+<span class="sourceLineNo">398</span> quotaScanner.close();<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> // Setting a new size and policy should be reflected<a name="line.401"></a>
+<span class="sourceLineNo">402</span> final long newSizeLimit = 1024L * 1024L * 1024L * 1024L; // 1TB<a name="line.402"></a>
+<span class="sourceLineNo">403</span> final SpaceViolationPolicy newViolationPolicy = SpaceViolationPolicy.NO_WRITES_COMPACTIONS;<a name="line.403"></a>
+<span class="sourceLineNo">404</span> QuotaSettings newSettings = QuotaSettingsFactory.limitTableSpace(tn, newSizeLimit,<a name="line.404"></a>
+<span class="sourceLineNo">405</span> newViolationPolicy);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> admin.setQuota(newSettings);<a name="line.406"></a>
+<span class="sourceLineNo">407</span><a name="line.407"></a>
+<span class="sourceLineNo">408</span> // Verify the new Quotas in the table<a name="line.408"></a>
+<span class="sourceLineNo">409</span> try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span> ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.410"></a>
+<span class="sourceLineNo">411</span> try {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> Result r = Iterables.getOnlyElement(scanner);<a name="line.412"></a>
+<span class="sourceLineNo">413</span> CellScanner cells = r.cellScanner();<a name="line.413"></a>
+<span class="sourceLineNo">414</span> assertTrue("Expected to find a cell", cells.advance());<a name="line.414"></a>
+<span class="sourceLineNo">415</span> assertSpaceQuota(newSizeLimit, newViolationPolicy, cells.current());<a name="line.415"></a>
+<span class="sourceLineNo">416</span> } finally {<a name="line.416"></a>
+<span class="sourceLineNo">417</span> scanner.close();<a name="line.417"></a>
+<span class="sourceLineNo">418</span> }<a name="line.418"></a>
+<span class="sourceLineNo">419</span> }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span> // Verify we can retrieve the new quota via the QuotaRetriever API<a name="line.421"></a>
+<span class="sourceLineNo">422</span> quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.422"></a>
+<span class="sourceLineNo">423</span> try {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> assertSpaceQuota(newSizeLimit, newViolationPolicy, Iterables.getOnlyElement(quotaScanner));<a name="line.424"></a>
+<span class="sourceLineNo">425</span> } finally {<a name="line.425"></a>
+<span class="sourceLineNo">426</span> quotaScanner.close();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> }<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span> // Now, remove the quota<a name="line.429"></a>
+<span class="sourceLineNo">430</span> QuotaSettings removeQuota = QuotaSettingsFactory.removeTableSpaceLimit(tn);<a name="line.430"></a>
+<span class="sourceLineNo">431</span> admin.setQuota(removeQuota);<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span> // Verify that the record doesn't exist in the table<a name="line.433"></a>
+<span class="sourceLineNo">434</span> try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span> ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.435"></a>
+<span class="sourceLineNo">436</span> try {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> assertNull("Did not expect to find a quota entry", scanner.next());<a name="line.437"></a>
+<span class="sourceLineNo">438</span> } finally {<a name="line.438"></a>
+<span class="sourceLineNo">439</span> scanner.close();<a name="line.439"></a>
+<span class="sourceLineNo">440</span> }<a name="line.440"></a>
+<span class="sourceLineNo">441</span> }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span> // Verify that we can also not fetch it via the API<a name="line.443"></a>
+<span class="sourceLineNo">444</span> quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.444"></a>
+<span class="sourceLineNo">445</span> try {<a name="line.445"></a>
+<span class="sourceLineNo">446</span> assertNull("Did not expect to find a quota entry", quotaScanner.next());<a name="line.446"></a>
+<span class="sourceLineNo">447</span> } finally {<a name="line.447"></a>
+<span class="sourceLineNo">448</span> quotaScanner.close();<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> private void assertNumResults(int expected, final QuotaFilter filter) throws Exception {<a name="line.452"></a>
+<span class="sourceLineNo">453</span> assertEquals(expected, countResults(filter));<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> private void assertSpaceQuota(<a name="line.456"></a>
+<span class="sourceLineNo">457</span> long sizeLimit, SpaceViolationPolicy violationPolicy, Cell cell) throws Exception {<a name="line.457"></a>
+<span class="sourceLineNo">458</span> Quotas q = QuotaTableUtil.quotasFromData(<a name="line.458"></a>
+<span class="sourceLineNo">459</span> cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());<a name="line.459"></a>
+<span class="sourceLineNo">460</span> assertTrue("Quota should have space quota defined", q.hasSpace());<a name="line.460"></a>
+<span class="sourceLineNo">461</span> QuotaProtos.SpaceQuota spaceQuota = q.getSpace();<a name="line.461"></a>
+<span class="sourceLineNo">462</span> assertEquals(sizeLimit, spaceQuota.getSoftLimit());<a name="line.462"></a>
+<span class="sourceLineNo">463</span> assertEquals(violationPolicy, ProtobufUtil.toViolationPolicy(spaceQuota.getViolationPolicy()));<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> private void assertSpaceQuota(<a name="line.466"></a>
+<span class="sourceLineNo">467</span> long sizeLimit, SpaceViolationPolicy violationPolicy, QuotaSettings actualSettings) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span> assertTrue("The actual QuotaSettings was not an instance of " + SpaceLimitSettings.class<a name="line.468"></a>
+<span class="sourceLineNo">469</span> + " but of " + actualSettings.getClass(), actualSettings instanceof SpaceLimitSettings);<a name="line.469"></a>
+<span class="sourceLineNo">470</span> SpaceLimitRequest spaceLimitRequest = ((SpaceLimitSettings) actualSettings).getProto();<a name="line.470"></a>
+<span class="sourceLineNo">471</span> assertEquals(sizeLimit, spaceLimitRequest.getQuota().getSoftLimit());<a name="line.471"></a>
+<span class="sourceLineNo">472</span> assertEquals(violationPolicy,<a name="line.472"></a>
+<span class="sourceLineNo">473</span> ProtobufUtil.toViolationPolicy(spaceLimitRequest.getQuota().getViolationPolicy()));<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> private int countResults(final QuotaFilter filter) throws Exception {<a name="line.476"></a>
+<span class="sourceLineNo">477</span> QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration(), filter);<a name="line.477"></a>
+<span class="sourceLineNo">478</span> try {<a name="line.478"></a>
+<span class="sourceLineNo">479</span> int count = 0;<a name="line.479"></a>
+<span class="sourceLineNo">480</span> for (QuotaSettings settings: scanner) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span> LOG.debug(Objects.toString(settings));<a name="line.481"></a>
+<span class="sourceLineNo">482</span> count++;<a name="line.482"></a>
+<span class="sourceLineNo">483</span> }<a name="line.483"></a>
+<span class="sourceLineNo">484</span> return count;<a name="line.484"></a>
+<span class="sourceLineNo">485</span> } finally {<a name="line.485"></a>
+<span class="sourceLineNo">486</span> scanner.close();<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>}<a name="line.489"></a>
[30/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html b/devapidocs/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
index 6082ea4..e87e313 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
@@ -308,7 +308,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota
<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html#line.45">checkQuota</a>(int numWrites,
int numReads,
int numScans)
- throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html#checkQuota-int-int-int-">OperationQuota</a></code></span></div>
<div class="block">Checks if it is possible to execute the specified operation.
The quota will be estimated based on the number of operations to perform
@@ -321,7 +321,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota
<dd><code>numReads</code> - number of small-read operation that will be performed</dd>
<dd><code>numScans</code> - number of long-read operation that will be performed</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be performed</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be performed because
+ RPC quota is exceeded.</dd>
</dl>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html b/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
index 6c123ea..6c14ab4 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
@@ -285,7 +285,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
<h4>checkQuota</h4>
<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#line.38">checkQuota</a>(long estimateWriteSize,
long estimateReadSize)
- throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">QuotaLimiter</a></code></span></div>
<div class="block">Checks if it is possible to execute the specified operation.</div>
<dl>
@@ -295,7 +295,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
<dd><code>estimateWriteSize</code> - the write size that will be checked against the available quota</dd>
<dd><code>estimateReadSize</code> - the read size that will be checked against the available quota</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
</dl>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/OperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/OperationQuota.html b/devapidocs/org/apache/hadoop/hbase/quotas/OperationQuota.html
index 72a5529..1a6bf98 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/OperationQuota.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/OperationQuota.html
@@ -207,10 +207,10 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
<ul class="blockList">
<li class="blockList">
<h4>checkQuota</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.46">checkQuota</a>(int numWrites,
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.47">checkQuota</a>(int numWrites,
int numReads,
int numScans)
- throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
<div class="block">Checks if it is possible to execute the specified operation.
The quota will be estimated based on the number of operations to perform
and the average size accumulated during time.</div>
@@ -220,7 +220,8 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
<dd><code>numReads</code> - number of small-read operation that will be performed</dd>
<dd><code>numScans</code> - number of long-read operation that will be performed</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be performed</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be performed because
+ RPC quota is exceeded.</dd>
</dl>
</li>
</ul>
@@ -230,7 +231,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.50">close</a>()</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.51">close</a>()</pre>
<div class="block">Cleanup method on operation completion</div>
</li>
</ul>
@@ -240,7 +241,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
<ul class="blockList">
<li class="blockList">
<h4>addGetResult</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.56">addGetResult</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a> result)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.57">addGetResult</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a> result)</pre>
<div class="block">Add a get result. This will be used to calculate the exact quota and
have a better short-read average size for the next time.</div>
</li>
@@ -251,7 +252,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
<ul class="blockList">
<li class="blockList">
<h4>addScanResult</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.62">addScanResult</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>> results)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.63">addScanResult</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>> results)</pre>
<div class="block">Add a scan result. This will be used to calculate the exact quota and
have a better long-read average size for the next time.</div>
</li>
@@ -262,7 +263,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
<ul class="blockList">
<li class="blockList">
<h4>addMutation</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.68">addMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> mutation)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.69">addMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a> mutation)</pre>
<div class="block">Add a mutation result. This will be used to calculate the exact quota and
have a better mutation average size for the next time.</div>
</li>
@@ -273,7 +274,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
<ul class="blockList">
<li class="blockList">
<h4>getReadAvailable</h4>
-<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.71">getReadAvailable</a>()</pre>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.72">getReadAvailable</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of bytes available to read to avoid exceeding the quota</dd>
@@ -286,7 +287,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
<ul class="blockListLast">
<li class="blockList">
<h4>getWriteAvailable</h4>
-<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.74">getWriteAvailable</a>()</pre>
+<pre>long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.75">getWriteAvailable</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of bytes available to write to avoid exceeding the quota</dd>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html b/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
index 6096683..38992fc 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
@@ -188,14 +188,14 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
<h4>checkQuota</h4>
<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.38">checkQuota</a>(long estimateWriteSize,
long estimateReadSize)
- throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
<div class="block">Checks if it is possible to execute the specified operation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>estimateWriteSize</code> - the write size that will be checked against the available quota</dd>
<dd><code>estimateReadSize</code> - the read size that will be checked against the available quota</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
</dl>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html b/devapidocs/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
index 118adb0..5388bef 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
@@ -369,7 +369,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<pre>public <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#line.132">checkQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a> region,
<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas">OperationQuota.OperationType</a> type)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
- <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+ <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
<div class="block">Check the quota for the current (rpc-context) user.
Returns the OperationQuota used to get the available quota and
to report the data/usage of the operation.</div>
@@ -380,7 +380,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the OperationQuota</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
@@ -394,7 +394,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<pre>public <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#line.151">checkQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a> region,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action> actions)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
- <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+ <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
<div class="block">Check the quota for the current (rpc-context) user.
Returns the OperationQuota used to get the available quota and
to report the data/usage of the operation.</div>
@@ -405,7 +405,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the OperationQuota</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
@@ -421,7 +421,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
int numReads,
int numScans)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
- <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+ <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
<div class="block">Check the quota for the current (rpc-context) user.
Returns the OperationQuota used to get the available quota and
to report the data/usage of the operation.</div>
@@ -434,7 +434,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the OperationQuota</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html b/devapidocs/org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html
index f31f482..8535053 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStoreFactory.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html" target="_top">Frames</a></li>
@@ -499,7 +499,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStor
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStoreFactory.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html" target="_top">Frames</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html b/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..953c57b
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.Type.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/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.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: </li>
+<li>Nested | </li>
+<li><a href="#enum.constant.summary">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#enum.constant.detail">Enum Constants</a> | </li>
+<li>Field | </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.quotas</div>
+<h2 title="Enum RpcThrottlingException.Type" class="title">Enum RpcThrottlingException.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.30">RpcThrottlingException.Type</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!-- -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumReadRequestsExceeded">NumReadRequestsExceeded</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumRequestsExceeded">NumRequestsExceeded</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumWriteRequestsExceeded">NumWriteRequestsExceeded</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#ReadSizeExceeded">ReadSizeExceeded</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#RequestSizeExceeded">RequestSizeExceeded</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#WriteSizeExceeded">WriteSizeExceeded</a></span></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/
8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</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 java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!-- -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="NumRequestsExceeded">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumRequestsExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="RequestSizeExceeded">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RequestSizeExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">RequestSizeExceeded</a></pre>
+</li>
+</ul>
+<a name="NumReadRequestsExceeded">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumReadRequestsExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumReadRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="NumWriteRequestsExceeded">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumWriteRequestsExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumWriteRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="WriteSizeExceeded">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WriteSizeExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.32">WriteSizeExceeded</a></pre>
+</li>
+</ul>
+<a name="ReadSizeExceeded">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReadSizeExceeded</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.32">ReadSizeExceeded</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="values--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.30">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:
+<pre>
+for (RpcThrottlingException.Type c : RpcThrottlingException.Type.values())
+ System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.30">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> 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
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.Type.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/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.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: </li>
+<li>Nested | </li>
+<li><a href="#enum.constant.summary">Enum Constants</a> | </li>
+<li>Field | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#enum.constant.detail">Enum Constants</a> | </li>
+<li>Field | </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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html b/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
new file mode 100644
index 0000000..9fb519b
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
@@ -0,0 +1,579 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.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/quotas/RegionSizeStoreImpl.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.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: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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.quotas</div>
+<h2 title="Class RpcThrottlingException" class="title">Class RpcThrottlingException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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><a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">org.apache.hadoop.hbase.HBaseIOException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.quotas.RpcThrottlingException</li>
+</ul>
+</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="https://docs.oracle.com/javase/8/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
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.27">RpcThrottlingException</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
+<div class="block">Describe the throttling result. TODO: At some point this will be handled on the client side to
+ prevent operation to go on the server if the waitInterval is greater than the one got as result
+ of this exception.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../serialized-form.html#org.apache.hadoop.hbase.quotas.RpcThrottlingException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#MSG_TYPE">MSG_TYPE</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#MSG_WAIT">MSG_WAIT</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#type">type</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#waitInterval">waitInterval</a></span></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type,
+ long waitInterval,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-java.lang.String-">RpcThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType</a></span>()</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code> </td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>private static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type,
+ long waitInterval)</code> </td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>private static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#timeFromString-java.lang.String-">timeFromString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> timeDiff)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or
interface in java.lang">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/
api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/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 java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="MSG_TYPE">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MSG_TYPE</h4>
+<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.35">MSG_TYPE</a></pre>
+</li>
+</ul>
+<a name="MSG_WAIT">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MSG_WAIT</h4>
+<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.40">MSG_WAIT</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.quotas.RpcThrottlingException.MSG_WAIT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="waitInterval">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitInterval</h4>
+<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.42">waitInterval</a></pre>
+</li>
+</ul>
+<a name="type">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>type</h4>
+<pre>private <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.43">type</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="RpcThrottlingException-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RpcThrottlingException</h4>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.45">RpcThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre>
+</li>
+</ul>
+<a name="RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RpcThrottlingException</h4>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.61">RpcThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type,
+ long waitInterval,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getType--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.67">getType</a>()</pre>
+</li>
+</ul>
+<a name="getWaitInterval--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWaitInterval</h4>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.71">getWaitInterval</a>()</pre>
+</li>
+</ul>
+<a name="throwNumRequestsExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumRequestsExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.75">throwNumRequestsExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwRequestSizeExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwRequestSizeExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.80">throwRequestSizeExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwNumReadRequestsExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumReadRequestsExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.85">throwNumReadRequestsExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwNumWriteRequestsExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumWriteRequestsExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.90">throwNumWriteRequestsExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwWriteSizeExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwWriteSizeExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.95">throwWriteSizeExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwReadSizeExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwReadSizeExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.99">throwReadSizeExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwThrottlingException</h4>
+<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.103">throwThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type,
+ long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="timeFromString-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>timeFromString</h4>
+<pre>private static long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.109">timeFromString</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> timeDiff)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.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/quotas/RegionSizeStoreImpl.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.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: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html b/devapidocs/org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html
index 799ccd2..f4041a6 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
@@ -665,7 +665,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
[19/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html
@@ -39,7 +39,7 @@
<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
<span class="sourceLineNo">193</span><a name="line.193"></a>
<span class="sourceLineNo">194</span> public static List<Throwable> metaCachePreservingExceptions() {<a name="line.194"></a>
<span class="sourceLineNo">195</span> return new ArrayList<Throwable>() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span> add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span> add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<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/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html
@@ -39,7 +39,7 @@
<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
<span class="sourceLineNo">193</span><a name="line.193"></a>
<span class="sourceLineNo">194</span> public static List<Throwable> metaCachePreservingExceptions() {<a name="line.194"></a>
<span class="sourceLineNo">195</span> return new ArrayList<Throwable>() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span> add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span> add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<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/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
@@ -39,7 +39,7 @@
<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
<span class="sourceLineNo">193</span><a name="line.193"></a>
<span class="sourceLineNo">194</span> public static List<Throwable> metaCachePreservingExceptions() {<a name="line.194"></a>
<span class="sourceLineNo">195</span> return new ArrayList<Throwable>() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span> add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span> add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<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/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html
@@ -39,7 +39,7 @@
<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
<span class="sourceLineNo">193</span><a name="line.193"></a>
<span class="sourceLineNo">194</span> public static List<Throwable> metaCachePreservingExceptions() {<a name="line.194"></a>
<span class="sourceLineNo">195</span> return new ArrayList<Throwable>() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span> add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span> add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<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/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.html
@@ -39,7 +39,7 @@
<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
<span class="sourceLineNo">193</span><a name="line.193"></a>
<span class="sourceLineNo">194</span> public static List<Throwable> metaCachePreservingExceptions() {<a name="line.194"></a>
<span class="sourceLineNo">195</span> return new ArrayList<Throwable>() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span> add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span> add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span> add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span> add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span> add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span> add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span> add(new CallQueueTooBigException());<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/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
index 19c72a2..f6a8245 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
@@ -104,213 +104,219 @@
<span class="sourceLineNo">096</span> admin1.modifyTable(tableName, table);<a name="line.96"></a>
<span class="sourceLineNo">097</span> admin1.enableTable(tableName);<a name="line.97"></a>
<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span> admin1.disableTableReplication(tableName);<a name="line.100"></a>
-<span class="sourceLineNo">101</span> table = admin1.getTableDescriptor(tableName);<a name="line.101"></a>
-<span class="sourceLineNo">102</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span> assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.103"></a>
-<span class="sourceLineNo">104</span> }<a name="line.104"></a>
-<span class="sourceLineNo">105</span> }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span> @Test<a name="line.107"></a>
-<span class="sourceLineNo">108</span> public void testEnableReplicationWhenSlaveClusterDoesntHaveTable() throws Exception {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> admin1.disableTableReplication(tableName);<a name="line.109"></a>
-<span class="sourceLineNo">110</span> admin2.disableTable(tableName);<a name="line.110"></a>
-<span class="sourceLineNo">111</span> admin2.deleteTable(tableName);<a name="line.111"></a>
-<span class="sourceLineNo">112</span> assertFalse(admin2.tableExists(tableName));<a name="line.112"></a>
-<span class="sourceLineNo">113</span> admin1.enableTableReplication(tableName);<a name="line.113"></a>
-<span class="sourceLineNo">114</span> assertTrue(admin2.tableExists(tableName));<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> @Test<a name="line.117"></a>
-<span class="sourceLineNo">118</span> public void testEnableReplicationWhenReplicationNotEnabled() throws Exception {<a name="line.118"></a>
-<span class="sourceLineNo">119</span> HTableDescriptor table = new HTableDescriptor(admin1.getTableDescriptor(tableName));<a name="line.119"></a>
-<span class="sourceLineNo">120</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> fam.setScope(HConstants.REPLICATION_SCOPE_LOCAL);<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> admin1.disableTable(tableName);<a name="line.123"></a>
-<span class="sourceLineNo">124</span> admin1.modifyTable(tableName, table);<a name="line.124"></a>
-<span class="sourceLineNo">125</span> admin1.enableTable(tableName);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> admin2.disableTable(tableName);<a name="line.127"></a>
-<span class="sourceLineNo">128</span> admin2.modifyTable(tableName, table);<a name="line.128"></a>
-<span class="sourceLineNo">129</span> admin2.enableTable(tableName);<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span> admin1.enableTableReplication(tableName);<a name="line.131"></a>
-<span class="sourceLineNo">132</span> table = admin1.getTableDescriptor(tableName);<a name="line.132"></a>
-<span class="sourceLineNo">133</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.134"></a>
-<span class="sourceLineNo">135</span> }<a name="line.135"></a>
-<span class="sourceLineNo">136</span> }<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Test<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public void testEnableReplicationWhenTableDescriptorIsNotSameInClusters() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> HTableDescriptor table = new HTableDescriptor(admin2.getTableDescriptor(tableName));<a name="line.140"></a>
-<span class="sourceLineNo">141</span> HColumnDescriptor f = new HColumnDescriptor("newFamily");<a name="line.141"></a>
-<span class="sourceLineNo">142</span> table.addFamily(f);<a name="line.142"></a>
-<span class="sourceLineNo">143</span> admin2.disableTable(tableName);<a name="line.143"></a>
-<span class="sourceLineNo">144</span> admin2.modifyTable(tableName, table);<a name="line.144"></a>
-<span class="sourceLineNo">145</span> admin2.enableTable(tableName);<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span> try {<a name="line.147"></a>
-<span class="sourceLineNo">148</span> admin1.enableTableReplication(tableName);<a name="line.148"></a>
-<span class="sourceLineNo">149</span> fail("Exception should be thrown if table descriptors in the clusters are not same.");<a name="line.149"></a>
-<span class="sourceLineNo">150</span> } catch (RuntimeException ignored) {<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> admin1.disableTable(tableName);<a name="line.153"></a>
-<span class="sourceLineNo">154</span> admin1.modifyTable(tableName, table);<a name="line.154"></a>
-<span class="sourceLineNo">155</span> admin1.enableTable(tableName);<a name="line.155"></a>
-<span class="sourceLineNo">156</span> admin1.enableTableReplication(tableName);<a name="line.156"></a>
-<span class="sourceLineNo">157</span> table = admin1.getTableDescriptor(tableName);<a name="line.157"></a>
-<span class="sourceLineNo">158</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<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">099</span> admin1.disableTableReplication(tableName);<a name="line.99"></a>
+<span class="sourceLineNo">100</span> table = admin1.getTableDescriptor(tableName);<a name="line.100"></a>
+<span class="sourceLineNo">101</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span> assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.102"></a>
+<span class="sourceLineNo">103</span> }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span> admin1.deleteColumnFamily(table.getTableName(), f.getName());<a name="line.105"></a>
+<span class="sourceLineNo">106</span> }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span> @Test<a name="line.108"></a>
+<span class="sourceLineNo">109</span> public void testEnableReplicationWhenSlaveClusterDoesntHaveTable() throws Exception {<a name="line.109"></a>
+<span class="sourceLineNo">110</span> admin1.disableTableReplication(tableName);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> admin2.disableTable(tableName);<a name="line.111"></a>
+<span class="sourceLineNo">112</span> admin2.deleteTable(tableName);<a name="line.112"></a>
+<span class="sourceLineNo">113</span> assertFalse(admin2.tableExists(tableName));<a name="line.113"></a>
+<span class="sourceLineNo">114</span> admin1.enableTableReplication(tableName);<a name="line.114"></a>
+<span class="sourceLineNo">115</span> assertTrue(admin2.tableExists(tableName));<a name="line.115"></a>
+<span class="sourceLineNo">116</span> }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span> @Test<a name="line.118"></a>
+<span class="sourceLineNo">119</span> public void testEnableReplicationWhenReplicationNotEnabled() throws Exception {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> HTableDescriptor table = new HTableDescriptor(admin1.getTableDescriptor(tableName));<a name="line.120"></a>
+<span class="sourceLineNo">121</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span> fam.setScope(HConstants.REPLICATION_SCOPE_LOCAL);<a name="line.122"></a>
+<span class="sourceLineNo">123</span> }<a name="line.123"></a>
+<span class="sourceLineNo">124</span> admin1.disableTable(tableName);<a name="line.124"></a>
+<span class="sourceLineNo">125</span> admin1.modifyTable(tableName, table);<a name="line.125"></a>
+<span class="sourceLineNo">126</span> admin1.enableTable(tableName);<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> admin2.disableTable(tableName);<a name="line.128"></a>
+<span class="sourceLineNo">129</span> admin2.modifyTable(tableName, table);<a name="line.129"></a>
+<span class="sourceLineNo">130</span> admin2.enableTable(tableName);<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span> admin1.enableTableReplication(tableName);<a name="line.132"></a>
+<span class="sourceLineNo">133</span> table = admin1.getTableDescriptor(tableName);<a name="line.133"></a>
+<span class="sourceLineNo">134</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.135"></a>
+<span class="sourceLineNo">136</span> }<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span> @Test<a name="line.139"></a>
+<span class="sourceLineNo">140</span> public void testEnableReplicationWhenTableDescriptorIsNotSameInClusters() throws Exception {<a name="line.140"></a>
+<span class="sourceLineNo">141</span> HTableDescriptor table = new HTableDescriptor(admin2.getTableDescriptor(tableName));<a name="line.141"></a>
+<span class="sourceLineNo">142</span> HColumnDescriptor f = new HColumnDescriptor("newFamily");<a name="line.142"></a>
+<span class="sourceLineNo">143</span> table.addFamily(f);<a name="line.143"></a>
+<span class="sourceLineNo">144</span> admin2.disableTable(tableName);<a name="line.144"></a>
+<span class="sourceLineNo">145</span> admin2.modifyTable(tableName, table);<a name="line.145"></a>
+<span class="sourceLineNo">146</span> admin2.enableTable(tableName);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span> try {<a name="line.148"></a>
+<span class="sourceLineNo">149</span> admin1.enableTableReplication(tableName);<a name="line.149"></a>
+<span class="sourceLineNo">150</span> fail("Exception should be thrown if table descriptors in the clusters are not same.");<a name="line.150"></a>
+<span class="sourceLineNo">151</span> } catch (RuntimeException ignored) {<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> admin1.disableTable(tableName);<a name="line.154"></a>
+<span class="sourceLineNo">155</span> admin1.modifyTable(tableName, table);<a name="line.155"></a>
+<span class="sourceLineNo">156</span> admin1.enableTable(tableName);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> admin1.enableTableReplication(tableName);<a name="line.157"></a>
+<span class="sourceLineNo">158</span> table = admin1.getTableDescriptor(tableName);<a name="line.158"></a>
+<span class="sourceLineNo">159</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.160"></a>
+<span class="sourceLineNo">161</span> }<a name="line.161"></a>
<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> @Test<a name="line.163"></a>
-<span class="sourceLineNo">164</span> public void testDisableAndEnableReplication() throws Exception {<a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin1.disableTableReplication(tableName);<a name="line.165"></a>
-<span class="sourceLineNo">166</span> HTableDescriptor table = admin1.getTableDescriptor(tableName);<a name="line.166"></a>
-<span class="sourceLineNo">167</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span> assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.168"></a>
-<span class="sourceLineNo">169</span> }<a name="line.169"></a>
-<span class="sourceLineNo">170</span> admin1.enableTableReplication(tableName);<a name="line.170"></a>
-<span class="sourceLineNo">171</span> table = admin1.getTableDescriptor(tableName);<a name="line.171"></a>
-<span class="sourceLineNo">172</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<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><a name="line.176"></a>
-<span class="sourceLineNo">177</span> @Test(expected = TableNotFoundException.class)<a name="line.177"></a>
-<span class="sourceLineNo">178</span> public void testDisableReplicationForNonExistingTable() throws Exception {<a name="line.178"></a>
-<span class="sourceLineNo">179</span> admin1.disableTableReplication(TableName.valueOf(name.getMethodName()));<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> @Test(expected = TableNotFoundException.class)<a name="line.182"></a>
-<span class="sourceLineNo">183</span> public void testEnableReplicationForNonExistingTable() throws Exception {<a name="line.183"></a>
-<span class="sourceLineNo">184</span> admin1.enableTableReplication(TableName.valueOf(name.getMethodName()));<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> @Test(expected = IllegalArgumentException.class)<a name="line.187"></a>
-<span class="sourceLineNo">188</span> public void testDisableReplicationWhenTableNameAsNull() throws Exception {<a name="line.188"></a>
-<span class="sourceLineNo">189</span> admin1.disableTableReplication(null);<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span> @Test(expected = IllegalArgumentException.class)<a name="line.192"></a>
-<span class="sourceLineNo">193</span> public void testEnableReplicationWhenTableNameAsNull() throws Exception {<a name="line.193"></a>
-<span class="sourceLineNo">194</span> admin1.enableTableReplication(null);<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span> /*<a name="line.197"></a>
-<span class="sourceLineNo">198</span> * Test enable table replication should create table only in user explicit specified table-cfs.<a name="line.198"></a>
-<span class="sourceLineNo">199</span> * HBASE-14717<a name="line.199"></a>
-<span class="sourceLineNo">200</span> */<a name="line.200"></a>
-<span class="sourceLineNo">201</span> @Test<a name="line.201"></a>
-<span class="sourceLineNo">202</span> public void testEnableReplicationForExplicitSetTableCfs() throws Exception {<a name="line.202"></a>
-<span class="sourceLineNo">203</span> final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.203"></a>
-<span class="sourceLineNo">204</span> String peerId = "2";<a name="line.204"></a>
-<span class="sourceLineNo">205</span> if (admin2.isTableAvailable(TestReplicationBase.tableName)) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> admin2.disableTable(TestReplicationBase.tableName);<a name="line.206"></a>
-<span class="sourceLineNo">207</span> admin2.deleteTable(TestReplicationBase.tableName);<a name="line.207"></a>
-<span class="sourceLineNo">208</span> }<a name="line.208"></a>
-<span class="sourceLineNo">209</span> assertFalse("Table should not exists in the peer cluster",<a name="line.209"></a>
-<span class="sourceLineNo">210</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span> // update peer config<a name="line.212"></a>
-<span class="sourceLineNo">213</span> ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> rpc.setReplicateAllUserTables(false);<a name="line.214"></a>
-<span class="sourceLineNo">215</span> admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> Map<TableName, ? extends Collection<String>> tableCfs = new HashMap<>();<a name="line.217"></a>
-<span class="sourceLineNo">218</span> tableCfs.put(tableName, null);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> try {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.221"></a>
-<span class="sourceLineNo">222</span> assertFalse("Table should not be created if user has set table cfs explicitly for the "<a name="line.222"></a>
-<span class="sourceLineNo">223</span> + "peer and this is not part of that collection",<a name="line.223"></a>
-<span class="sourceLineNo">224</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> tableCfs.put(TestReplicationBase.tableName, null);<a name="line.226"></a>
-<span class="sourceLineNo">227</span> adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.227"></a>
-<span class="sourceLineNo">228</span> admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.228"></a>
-<span class="sourceLineNo">229</span> assertTrue(<a name="line.229"></a>
-<span class="sourceLineNo">230</span> "Table should be created if user has explicitly added table into table cfs collection",<a name="line.230"></a>
-<span class="sourceLineNo">231</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.231"></a>
-<span class="sourceLineNo">232</span> } finally {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> adminExt.removePeerTableCFs(peerId, adminExt.getPeerTableCFs(peerId));<a name="line.233"></a>
-<span class="sourceLineNo">234</span> admin1.disableTableReplication(TestReplicationBase.tableName);<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span> rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.236"></a>
-<span class="sourceLineNo">237</span> rpc.setReplicateAllUserTables(true);<a name="line.237"></a>
-<span class="sourceLineNo">238</span> admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.238"></a>
-<span class="sourceLineNo">239</span> }<a name="line.239"></a>
-<span class="sourceLineNo">240</span> }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span> @Test<a name="line.242"></a>
-<span class="sourceLineNo">243</span> public void testReplicationPeerConfigUpdateCallback() throws Exception {<a name="line.243"></a>
-<span class="sourceLineNo">244</span> String peerId = "1";<a name="line.244"></a>
-<span class="sourceLineNo">245</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.245"></a>
-<span class="sourceLineNo">246</span> rpc.setClusterKey(utility2.getClusterKey());<a name="line.246"></a>
-<span class="sourceLineNo">247</span> rpc.setReplicationEndpointImpl(TestUpdatableReplicationEndpoint.class.getName());<a name="line.247"></a>
-<span class="sourceLineNo">248</span> rpc.getConfiguration().put("key1", "value1");<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span> admin1.addReplicationPeer(peerId, rpc);<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span> rpc.getConfiguration().put("key1", "value2");<a name="line.252"></a>
-<span class="sourceLineNo">253</span> admin.updatePeerConfig(peerId, rpc);<a name="line.253"></a>
-<span class="sourceLineNo">254</span> if (!TestUpdatableReplicationEndpoint.hasCalledBack()) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span> synchronized(TestUpdatableReplicationEndpoint.class) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span> TestUpdatableReplicationEndpoint.class.wait(2000L);<a name="line.256"></a>
-<span class="sourceLineNo">257</span> }<a name="line.257"></a>
-<span class="sourceLineNo">258</span> }<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span> assertEquals(true, TestUpdatableReplicationEndpoint.hasCalledBack());<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 static class TestUpdatableReplicationEndpoint extends BaseReplicationEndpoint {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> private static boolean calledBack = false;<a name="line.264"></a>
-<span class="sourceLineNo">265</span> public static boolean hasCalledBack(){<a name="line.265"></a>
-<span class="sourceLineNo">266</span> return calledBack;<a name="line.266"></a>
-<span class="sourceLineNo">267</span> }<a name="line.267"></a>
-<span class="sourceLineNo">268</span> @Override<a name="line.268"></a>
-<span class="sourceLineNo">269</span> public synchronized void peerConfigUpdated(ReplicationPeerConfig rpc){<a name="line.269"></a>
-<span class="sourceLineNo">270</span> calledBack = true;<a name="line.270"></a>
-<span class="sourceLineNo">271</span> notifyAll();<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">163</span> admin1.deleteColumnFamily(tableName, f.getName());<a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin2.deleteColumnFamily(tableName, f.getName());<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testDisableAndEnableReplication() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> admin1.disableTableReplication(tableName);<a name="line.169"></a>
+<span class="sourceLineNo">170</span> HTableDescriptor table = admin1.getTableDescriptor(tableName);<a name="line.170"></a>
+<span class="sourceLineNo">171</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span> assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.172"></a>
+<span class="sourceLineNo">173</span> }<a name="line.173"></a>
+<span class="sourceLineNo">174</span> admin1.enableTableReplication(tableName);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> table = admin1.getTableDescriptor(tableName);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span> assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span> }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span> @Test(expected = TableNotFoundException.class)<a name="line.181"></a>
+<span class="sourceLineNo">182</span> public void testDisableReplicationForNonExistingTable() throws Exception {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> admin1.disableTableReplication(TableName.valueOf(name.getMethodName()));<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> @Test(expected = TableNotFoundException.class)<a name="line.186"></a>
+<span class="sourceLineNo">187</span> public void testEnableReplicationForNonExistingTable() throws Exception {<a name="line.187"></a>
+<span class="sourceLineNo">188</span> admin1.enableTableReplication(TableName.valueOf(name.getMethodName()));<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> @Test(expected = IllegalArgumentException.class)<a name="line.191"></a>
+<span class="sourceLineNo">192</span> public void testDisableReplicationWhenTableNameAsNull() throws Exception {<a name="line.192"></a>
+<span class="sourceLineNo">193</span> admin1.disableTableReplication(null);<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span> @Test(expected = IllegalArgumentException.class)<a name="line.196"></a>
+<span class="sourceLineNo">197</span> public void testEnableReplicationWhenTableNameAsNull() throws Exception {<a name="line.197"></a>
+<span class="sourceLineNo">198</span> admin1.enableTableReplication(null);<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> * Test enable table replication should create table only in user explicit specified table-cfs.<a name="line.202"></a>
+<span class="sourceLineNo">203</span> * HBASE-14717<a name="line.203"></a>
+<span class="sourceLineNo">204</span> */<a name="line.204"></a>
+<span class="sourceLineNo">205</span> @Test<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public void testEnableReplicationForExplicitSetTableCfs() throws Exception {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.207"></a>
+<span class="sourceLineNo">208</span> String peerId = "2";<a name="line.208"></a>
+<span class="sourceLineNo">209</span> if (admin2.isTableAvailable(TestReplicationBase.tableName)) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> admin2.disableTable(TestReplicationBase.tableName);<a name="line.210"></a>
+<span class="sourceLineNo">211</span> admin2.deleteTable(TestReplicationBase.tableName);<a name="line.211"></a>
+<span class="sourceLineNo">212</span> }<a name="line.212"></a>
+<span class="sourceLineNo">213</span> assertFalse("Table should not exists in the peer cluster",<a name="line.213"></a>
+<span class="sourceLineNo">214</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span> // update peer config<a name="line.216"></a>
+<span class="sourceLineNo">217</span> ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> rpc.setReplicateAllUserTables(false);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span> Map<TableName, ? extends Collection<String>> tableCfs = new HashMap<>();<a name="line.221"></a>
+<span class="sourceLineNo">222</span> tableCfs.put(tableName, null);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> try {<a name="line.223"></a>
+<span class="sourceLineNo">224</span> adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.225"></a>
+<span class="sourceLineNo">226</span> assertFalse("Table should not be created if user has set table cfs explicitly for the "<a name="line.226"></a>
+<span class="sourceLineNo">227</span> + "peer and this is not part of that collection",<a name="line.227"></a>
+<span class="sourceLineNo">228</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> tableCfs.put(TestReplicationBase.tableName, null);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.231"></a>
+<span class="sourceLineNo">232</span> admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> assertTrue(<a name="line.233"></a>
+<span class="sourceLineNo">234</span> "Table should be created if user has explicitly added table into table cfs collection",<a name="line.234"></a>
+<span class="sourceLineNo">235</span> admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.235"></a>
+<span class="sourceLineNo">236</span> } finally {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> adminExt.removePeerTableCFs(peerId, adminExt.getPeerTableCFs(peerId));<a name="line.237"></a>
+<span class="sourceLineNo">238</span> admin1.disableTableReplication(TestReplicationBase.tableName);<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span> rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.240"></a>
+<span class="sourceLineNo">241</span> rpc.setReplicateAllUserTables(true);<a name="line.241"></a>
+<span class="sourceLineNo">242</span> admin1.updateReplicationPeerConfig(peerId, rpc);<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> @Test<a name="line.246"></a>
+<span class="sourceLineNo">247</span> public void testReplicationPeerConfigUpdateCallback() throws Exception {<a name="line.247"></a>
+<span class="sourceLineNo">248</span> String peerId = "1";<a name="line.248"></a>
+<span class="sourceLineNo">249</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.249"></a>
+<span class="sourceLineNo">250</span> rpc.setClusterKey(utility2.getClusterKey());<a name="line.250"></a>
+<span class="sourceLineNo">251</span> rpc.setReplicationEndpointImpl(TestUpdatableReplicationEndpoint.class.getName());<a name="line.251"></a>
+<span class="sourceLineNo">252</span> rpc.getConfiguration().put("key1", "value1");<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span> admin1.addReplicationPeer(peerId, rpc);<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span> rpc.getConfiguration().put("key1", "value2");<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.updatePeerConfig(peerId, rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> if (!TestUpdatableReplicationEndpoint.hasCalledBack()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span> synchronized (TestUpdatableReplicationEndpoint.class) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> TestUpdatableReplicationEndpoint.class.wait(2000L);<a name="line.260"></a>
+<span class="sourceLineNo">261</span> }<a name="line.261"></a>
+<span class="sourceLineNo">262</span> }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span> assertEquals(true, TestUpdatableReplicationEndpoint.hasCalledBack());<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span> admin.removePeer(peerId);<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> public static class TestUpdatableReplicationEndpoint extends BaseReplicationEndpoint {<a name="line.269"></a>
+<span class="sourceLineNo">270</span> private static boolean calledBack = false;<a name="line.270"></a>
+<span class="sourceLineNo">271</span> public static boolean hasCalledBack(){<a name="line.271"></a>
+<span class="sourceLineNo">272</span> return calledBack;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> }<a name="line.273"></a>
<span class="sourceLineNo">274</span> @Override<a name="line.274"></a>
-<span class="sourceLineNo">275</span> public void start() {<a name="line.275"></a>
-<span class="sourceLineNo">276</span> startAsync();<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Override<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void stop() {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> stopAsync();<a name="line.281"></a>
-<span class="sourceLineNo">282</span> }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span> @Override<a name="line.284"></a>
-<span class="sourceLineNo">285</span> protected void doStart() {<a name="line.285"></a>
-<span class="sourceLineNo">286</span> notifyStarted();<a name="line.286"></a>
-<span class="sourceLineNo">287</span> }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span> @Override<a name="line.289"></a>
-<span class="sourceLineNo">290</span> protected void doStop() {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> notifyStopped();<a name="line.291"></a>
-<span class="sourceLineNo">292</span> }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">275</span> public synchronized void peerConfigUpdated(ReplicationPeerConfig rpc){<a name="line.275"></a>
+<span class="sourceLineNo">276</span> calledBack = true;<a name="line.276"></a>
+<span class="sourceLineNo">277</span> notifyAll();<a name="line.277"></a>
+<span class="sourceLineNo">278</span> }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span> @Override<a name="line.280"></a>
+<span class="sourceLineNo">281</span> public void start() {<a name="line.281"></a>
+<span class="sourceLineNo">282</span> startAsync();<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span> public void stop() {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> stopAsync();<a name="line.287"></a>
+<span class="sourceLineNo">288</span> }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span> @Override<a name="line.290"></a>
+<span class="sourceLineNo">291</span> protected void doStart() {<a name="line.291"></a>
+<span class="sourceLineNo">292</span> notifyStarted();<a name="line.292"></a>
+<span class="sourceLineNo">293</span> }<a name="line.293"></a>
<span class="sourceLineNo">294</span><a name="line.294"></a>
<span class="sourceLineNo">295</span> @Override<a name="line.295"></a>
-<span class="sourceLineNo">296</span> public UUID getPeerUUID() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span> return UUID.randomUUID();<a name="line.297"></a>
+<span class="sourceLineNo">296</span> protected void doStop() {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> notifyStopped();<a name="line.297"></a>
<span class="sourceLineNo">298</span> }<a name="line.298"></a>
<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Override<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span> return false;<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>}<a name="line.305"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span> @Override<a name="line.301"></a>
+<span class="sourceLineNo">302</span> public UUID getPeerUUID() {<a name="line.302"></a>
+<span class="sourceLineNo">303</span> return UUID.randomUUID();<a name="line.303"></a>
+<span class="sourceLineNo">304</span> }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span> @Override<a name="line.306"></a>
+<span class="sourceLineNo">307</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span> return false;<a name="line.308"></a>
+<span class="sourceLineNo">309</span> }<a name="line.309"></a>
+<span class="sourceLineNo">310</span> }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>}<a name="line.311"></a>
[08/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
@@ -72,7 +72,7 @@
<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
<span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
<span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
<span class="sourceLineNo">069</span><a name="line.69"></a>
<span class="sourceLineNo">070</span> @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
<span class="sourceLineNo">078</span> @BeforeClass<a name="line.78"></a>
<span class="sourceLineNo">079</span> public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
<span class="sourceLineNo">080</span> TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span> admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span> public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span> // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span> public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> final List<RegionServerThread> rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span> for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span> }<a name="line.103"></a>
-<span class="sourceLineNo">104</span> // Wait for all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span> public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span> return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> }<a name="line.111"></a>
-<span class="sourceLineNo">112</span> }<a name="line.112"></a>
-<span class="sourceLineNo">113</span> return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span> public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.118"></a>
-<span class="sourceLineNo">119</span> for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span> // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span> }<a name="line.141"></a>
-<span class="sourceLineNo">142</span> });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span> @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span> public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span> });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span> // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span> public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span> int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span> admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span> if (admin.getPeersCount() <= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span> Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span> }<a name="line.183"></a>
-<span class="sourceLineNo">184</span> // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span> doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span> public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span> // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span> LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span> });<a name="line.196"></a>
-<span class="sourceLineNo">197</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<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> @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span> public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span> // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span> RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span> byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span> for (int i = 0; i < 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> if (row.length > 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span> Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span> }<a name="line.222"></a>
-<span class="sourceLineNo">223</span> }<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span> null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span> public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span> public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span> return failure;<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> admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span> utility1.deleteTableData(tableName);<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> @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span> //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span> // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span> doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span> public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span> });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span> //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span> //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span> "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<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> @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span> //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span> "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> }<a name="line.297"></a>
+<span class="sourceLineNo">081</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span> public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span> // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> final List<RegionServerThread> rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span> for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span> // Wait for all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span> public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span> for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span> return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> }<a name="line.110"></a>
+<span class="sourceLineNo">111</span> }<a name="line.111"></a>
+<span class="sourceLineNo">112</span> return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span> public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.117"></a>
+<span class="sourceLineNo">118</span> for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span> // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span> @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span> public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<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><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span> public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span> public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<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> doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin.removePeer("testCustomReplicationEndpoint");<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span> int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span> admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span> if (admin.getPeersCount() <= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> }<a name="line.182"></a>
+<span class="sourceLineNo">183</span> // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span> doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span> public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span> // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span> LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span> });<a name="line.195"></a>
+<span class="sourceLineNo">196</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span> }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span> @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span> public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span> final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span> // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span> RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span> byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span> for (int i = 0; i < 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> if (row.length > 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span> null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span> public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<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> @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span> public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span> }<a name="line.242"></a>
+<span class="sourceLineNo">243</span> });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span> utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span> @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span> //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span> doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span> public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span> });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span> //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<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> @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span> //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span> "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span> //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span> "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<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><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span> /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span> allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span> the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> */<a name="line.309"></a>
-<span class="sourceLineNo">310</span> String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span> long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span> String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span> String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span> String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span> long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span> source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span> source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span> source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span> source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span> source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span> source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span> source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span> source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span> verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span> verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span> verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> doPut(connection, row);<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><a name="line.363"></a>
-<span class="sourceLineNo">364</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span> Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span> }<a name="line.369"></a>
-<span class="sourceLineNo">370</span> }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span> private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span> static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> static volatile List<Entry> lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span> @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span> /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span> allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span> the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span> String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span> String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span> long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span> String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span> source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span> source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span> source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span> source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span> source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span> source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span> source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span> source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span> source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span> verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span> verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span> verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span> doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span> }<a name="line.360"></a>
+<span class="sourceLineNo">361</span> }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span> try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span> Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span> put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span> }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span> private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span> return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span> }<a name="line.374"></a>
+<span class="sourceLineNo">375</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span> Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span> static volatile List<Entry> lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span> public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> replicateCount.set(0);<a name="line.391"></a>
<span class="sourceLineNo">392</span> contructedCount.incrementAndGet();<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>
@@ -441,127 +441,131 @@
<span class="sourceLineNo">433</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
<span class="sourceLineNo">434</span> static boolean failedOnce;<a name="line.434"></a>
<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span> }<a name="line.441"></a>
-<span class="sourceLineNo">442</span> return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span> }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span> @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span> failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return new FailingDummyReplicator(entries, ordinal);<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> protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span> private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span> public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span> }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span> @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span> return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span> }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span> @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span> // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span> if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span> } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span> failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span> return new FailingDummyReplicator(entries, ordinal);<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><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span> @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span> public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> return ordinal;<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><a name="line.470"></a>
-<span class="sourceLineNo">471</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span> super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span> }<a name="line.475"></a>
+<span class="sourceLineNo">460</span> protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span> private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span> super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span> this.ordinal = ordinal;<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> @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span> public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span> return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span> }<a name="line.472"></a>
+<span class="sourceLineNo">473</span> }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span> public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span> }<a name="line.480"></a>
-<span class="sourceLineNo">481</span> }<a name="line.481"></a>
-<span class="sourceLineNo">482</span> }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span> static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span> @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span> try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span> // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span> doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span> } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span> return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span> }<a name="line.502"></a>
-<span class="sourceLineNo">503</span> }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span> super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span> }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span> @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span> public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span> @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span> // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span> doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span> return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span> }<a name="line.506"></a>
+<span class="sourceLineNo">507</span> }<a name="line.507"></a>
<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span> @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span> try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span> super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span> doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span> ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span> public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span> @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span> int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> for (int i = size-1; i >= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span> row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> cells.remove(i);<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> return entry;<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> }<a name="line.537"></a>
-<span class="sourceLineNo">538</span> }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span> @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span> public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span> return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span> public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span> return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span> @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span> try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span> doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span> } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span> ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span> return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span> }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span> @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span> public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span> @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (int i = size-1; i >= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span> row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span> cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span> }<a name="line.536"></a>
+<span class="sourceLineNo">537</span> }<a name="line.537"></a>
+<span class="sourceLineNo">538</span> return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> });<a name="line.540"></a>
+<span class="sourceLineNo">541</span> }<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> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span> @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span> public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> return entry;<a name="line.549"></a>
<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span> return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
<span class="sourceLineNo">555</span> }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
[11/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
@@ -72,7 +72,7 @@
<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
<span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
<span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
<span class="sourceLineNo">069</span><a name="line.69"></a>
<span class="sourceLineNo">070</span> @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
<span class="sourceLineNo">078</span> @BeforeClass<a name="line.78"></a>
<span class="sourceLineNo">079</span> public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
<span class="sourceLineNo">080</span> TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span> admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span> public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span> // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span> public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> final List<RegionServerThread> rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span> for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span> }<a name="line.103"></a>
-<span class="sourceLineNo">104</span> // Wait for all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span> public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span> return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> }<a name="line.111"></a>
-<span class="sourceLineNo">112</span> }<a name="line.112"></a>
-<span class="sourceLineNo">113</span> return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span> public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.118"></a>
-<span class="sourceLineNo">119</span> for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span> // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span> }<a name="line.141"></a>
-<span class="sourceLineNo">142</span> });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span> @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span> public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span> });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span> // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span> public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span> int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span> admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span> if (admin.getPeersCount() <= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span> Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span> }<a name="line.183"></a>
-<span class="sourceLineNo">184</span> // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span> doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span> public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span> // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span> LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span> });<a name="line.196"></a>
-<span class="sourceLineNo">197</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<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> @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span> public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span> // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span> RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span> byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span> for (int i = 0; i < 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> if (row.length > 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span> Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span> }<a name="line.222"></a>
-<span class="sourceLineNo">223</span> }<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span> null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span> public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span> public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span> return failure;<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> admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span> utility1.deleteTableData(tableName);<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> @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span> //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span> // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span> doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span> public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span> });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span> //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span> //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span> "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<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> @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span> //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span> "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> }<a name="line.297"></a>
+<span class="sourceLineNo">081</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span> public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span> // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> final List<RegionServerThread> rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span> for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span> // Wait for all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span> public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span> for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span> return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> }<a name="line.110"></a>
+<span class="sourceLineNo">111</span> }<a name="line.111"></a>
+<span class="sourceLineNo">112</span> return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span> public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.117"></a>
+<span class="sourceLineNo">118</span> for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span> // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span> @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span> public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<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><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span> public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span> public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<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> doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin.removePeer("testCustomReplicationEndpoint");<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span> int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span> admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span> if (admin.getPeersCount() <= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> }<a name="line.182"></a>
+<span class="sourceLineNo">183</span> // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span> doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span> public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span> // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span> LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span> });<a name="line.195"></a>
+<span class="sourceLineNo">196</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span> }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span> @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span> public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span> final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span> // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span> RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span> byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span> for (int i = 0; i < 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> if (row.length > 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span> null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span> public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<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> @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span> public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span> }<a name="line.242"></a>
+<span class="sourceLineNo">243</span> });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span> utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span> @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span> //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span> doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span> public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span> });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span> //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<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> @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span> //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span> "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span> //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span> "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<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><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span> /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span> allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span> the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> */<a name="line.309"></a>
-<span class="sourceLineNo">310</span> String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span> long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span> String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span> String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span> String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span> long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span> source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span> source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span> source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span> source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span> source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span> source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span> source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span> source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span> verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span> verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span> verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> doPut(connection, row);<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><a name="line.363"></a>
-<span class="sourceLineNo">364</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span> Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span> }<a name="line.369"></a>
-<span class="sourceLineNo">370</span> }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span> private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span> static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> static volatile List<Entry> lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span> @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span> /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span> allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span> the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span> String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span> String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span> long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span> String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span> source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span> source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span> source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span> source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span> source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span> source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span> source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span> source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span> source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span> verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span> verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span> verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span> doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span> }<a name="line.360"></a>
+<span class="sourceLineNo">361</span> }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span> try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span> Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span> put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span> }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span> private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span> return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span> }<a name="line.374"></a>
+<span class="sourceLineNo">375</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span> Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span> static volatile List<Entry> lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span> public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> replicateCount.set(0);<a name="line.391"></a>
<span class="sourceLineNo">392</span> contructedCount.incrementAndGet();<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>
@@ -441,127 +441,131 @@
<span class="sourceLineNo">433</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
<span class="sourceLineNo">434</span> static boolean failedOnce;<a name="line.434"></a>
<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span> }<a name="line.441"></a>
-<span class="sourceLineNo">442</span> return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span> }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span> @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span> failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return new FailingDummyReplicator(entries, ordinal);<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> protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span> private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span> public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span> }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span> @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span> return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span> }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span> @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span> // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span> if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span> } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span> failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span> return new FailingDummyReplicator(entries, ordinal);<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><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span> @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span> public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> return ordinal;<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><a name="line.470"></a>
-<span class="sourceLineNo">471</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span> super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span> }<a name="line.475"></a>
+<span class="sourceLineNo">460</span> protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span> private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span> super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span> this.ordinal = ordinal;<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> @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span> public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span> return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span> }<a name="line.472"></a>
+<span class="sourceLineNo">473</span> }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span> public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span> }<a name="line.480"></a>
-<span class="sourceLineNo">481</span> }<a name="line.481"></a>
-<span class="sourceLineNo">482</span> }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span> static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span> @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span> try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span> // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span> doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span> } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span> return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span> }<a name="line.502"></a>
-<span class="sourceLineNo">503</span> }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span> super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span> }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span> @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span> public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span> @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span> // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span> doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span> return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span> }<a name="line.506"></a>
+<span class="sourceLineNo">507</span> }<a name="line.507"></a>
<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span> @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span> try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span> super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span> doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span> ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span> public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span> @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span> int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> for (int i = size-1; i >= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span> row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> cells.remove(i);<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> return entry;<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> }<a name="line.537"></a>
-<span class="sourceLineNo">538</span> }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span> @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span> public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span> return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span> public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span> return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span> @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span> try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span> doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span> } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span> ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span> return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span> }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span> @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span> public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span> @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (int i = size-1; i >= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span> row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span> cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span> }<a name="line.536"></a>
+<span class="sourceLineNo">537</span> }<a name="line.537"></a>
+<span class="sourceLineNo">538</span> return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> });<a name="line.540"></a>
+<span class="sourceLineNo">541</span> }<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> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span> @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span> public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> return entry;<a name="line.549"></a>
<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span> return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
<span class="sourceLineNo">555</span> }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
[24/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationBase.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationBase.html
index 25f375a..fa615cb 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationBase.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationBase.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":9,"i5":9,"i6":10,"i7":9,"i8":9,"i9":10,"i10":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.69">TestReplicationBase</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.67">TestReplicationBase</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">This class is only a base for other integration-level replication tests.
Do not add tests here.
@@ -190,17 +190,17 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a></span></code> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a></span></code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>protected static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a></span></code> </td>
</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a></span></code> </td>
-</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a></span></code> </td>
@@ -262,31 +262,43 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a></span>()</code> </td>
</tr>
<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a></span>()</code> </td>
+</tr>
+<tr id="i2" class="altColor">
<td class="colFirst"><code>protected static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> prefix,
byte[] row)</code> </td>
</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a></span>()</code> </td>
-</tr>
<tr id="i3" class="rowColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#peerExist-java.lang.String-">peerExist</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)</code> </td>
+</tr>
+<tr id="i4" class="altColor">
<td class="colFirst"><code>protected static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a></span>()</code> </td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a></span>()</code> </td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a></span>()</code> </td>
+</tr>
+<tr id="i7" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code> </td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a></span>()</code> </td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a></span>()</code> </td>
+</tr>
+<tr id="i10" class="altColor">
<td class="colFirst"><code>protected static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></span>(int expectedRows,
int retries)</code> </td>
@@ -319,7 +331,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.75">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.68">LOG</a></pre>
</li>
</ul>
<a name="conf1">
@@ -328,7 +340,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>conf1</h4>
-<pre>protected static org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.77">conf1</a></pre>
+<pre>protected static org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.70">conf1</a></pre>
</li>
</ul>
<a name="conf2">
@@ -337,7 +349,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>conf2</h4>
-<pre>protected static org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.78">conf2</a></pre>
+<pre>protected static org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.71">conf2</a></pre>
</li>
</ul>
<a name="CONF_WITH_LOCALFS">
@@ -346,7 +358,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>CONF_WITH_LOCALFS</h4>
-<pre>protected static org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.79">CONF_WITH_LOCALFS</a></pre>
+<pre>protected static org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.72">CONF_WITH_LOCALFS</a></pre>
</li>
</ul>
<a name="zkw1">
@@ -355,7 +367,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>zkw1</h4>
-<pre>protected static org.apache.hadoop.hbase.zookeeper.ZKWatcher <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.81">zkw1</a></pre>
+<pre>protected static org.apache.hadoop.hbase.zookeeper.ZKWatcher <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.74">zkw1</a></pre>
</li>
</ul>
<a name="zkw2">
@@ -364,7 +376,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>zkw2</h4>
-<pre>protected static org.apache.hadoop.hbase.zookeeper.ZKWatcher <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.82">zkw2</a></pre>
+<pre>protected static org.apache.hadoop.hbase.zookeeper.ZKWatcher <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.75">zkw2</a></pre>
</li>
</ul>
<a name="admin">
@@ -373,7 +385,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>admin</h4>
-<pre>protected static org.apache.hadoop.hbase.client.replication.ReplicationAdmin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.84">admin</a></pre>
+<pre>protected static org.apache.hadoop.hbase.client.replication.ReplicationAdmin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.77">admin</a></pre>
</li>
</ul>
<a name="hbaseAdmin">
@@ -382,7 +394,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>hbaseAdmin</h4>
-<pre>protected static org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.85">hbaseAdmin</a></pre>
+<pre>protected static org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.78">hbaseAdmin</a></pre>
</li>
</ul>
<a name="htable1">
@@ -391,7 +403,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>htable1</h4>
-<pre>protected static org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.87">htable1</a></pre>
+<pre>protected static org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.80">htable1</a></pre>
</li>
</ul>
<a name="htable2">
@@ -400,7 +412,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>htable2</h4>
-<pre>protected static org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.88">htable2</a></pre>
+<pre>protected static org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.81">htable2</a></pre>
</li>
</ul>
<a name="scopes">
@@ -409,7 +421,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>scopes</h4>
-<pre>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.89">scopes</a></pre>
+<pre>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a><byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.82">scopes</a></pre>
</li>
</ul>
<a name="utility1">
@@ -418,7 +430,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>utility1</h4>
-<pre>protected static <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/replication/TestReplicationBase.html#line.91">utility1</a></pre>
+<pre>protected static <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/replication/TestReplicationBase.html#line.84">utility1</a></pre>
</li>
</ul>
<a name="utility2">
@@ -427,7 +439,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>utility2</h4>
-<pre>protected static <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/replication/TestReplicationBase.html#line.92">utility2</a></pre>
+<pre>protected static <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/replication/TestReplicationBase.html#line.85">utility2</a></pre>
</li>
</ul>
<a name="NB_ROWS_IN_BATCH">
@@ -436,7 +448,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>NB_ROWS_IN_BATCH</h4>
-<pre>protected static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.93">NB_ROWS_IN_BATCH</a></pre>
+<pre>protected static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.86">NB_ROWS_IN_BATCH</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationBase.NB_ROWS_IN_BATCH">Constant Field Values</a></dd>
@@ -449,7 +461,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>NB_ROWS_IN_BIG_BATCH</h4>
-<pre>protected static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.94">NB_ROWS_IN_BIG_BATCH</a></pre>
+<pre>protected static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.87">NB_ROWS_IN_BIG_BATCH</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationBase.NB_ROWS_IN_BIG_BATCH">Constant Field Values</a></dd>
@@ -462,7 +474,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>SLEEP_TIME</h4>
-<pre>protected static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.96">SLEEP_TIME</a></pre>
+<pre>protected static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.89">SLEEP_TIME</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationBase.SLEEP_TIME">Constant Field Values</a></dd>
@@ -475,7 +487,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>NB_RETRIES</h4>
-<pre>protected static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.97">NB_RETRIES</a></pre>
+<pre>protected static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.90">NB_RETRIES</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationBase.NB_RETRIES">Constant Field Values</a></dd>
@@ -488,7 +500,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>tableName</h4>
-<pre>protected static final org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.99">tableName</a></pre>
+<pre>protected static final org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.92">tableName</a></pre>
</li>
</ul>
<a name="famName">
@@ -497,7 +509,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>famName</h4>
-<pre>protected static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.100">famName</a></pre>
+<pre>protected static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.93">famName</a></pre>
</li>
</ul>
<a name="row">
@@ -506,7 +518,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>row</h4>
-<pre>protected static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.101">row</a></pre>
+<pre>protected static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.94">row</a></pre>
</li>
</ul>
<a name="noRepfamName">
@@ -515,16 +527,20 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>noRepfamName</h4>
-<pre>protected static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.102">noRepfamName</a></pre>
+<pre>protected static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.95">noRepfamName</a></pre>
</li>
</ul>
-<a name="seperateOldWALs">
+<a name="PEER_ID2">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
-<h4>seperateOldWALs</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.105">seperateOldWALs</a></pre>
+<h4>PEER_ID2</h4>
+<pre>protected static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.96">PEER_ID2</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationBase.PEER_ID2">Constant Field Values</a></dd>
+</dl>
</li>
</ul>
</li>
@@ -541,7 +557,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>TestReplicationBase</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.69">TestReplicationBase</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.67">TestReplicationBase</a>()</pre>
</li>
</ul>
</li>
@@ -552,13 +568,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<!-- -->
</a>
<h3>Method Detail</h3>
-<a name="params--">
+<a name="isSerialPeer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>params</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.108">params</a>()</pre>
+<h4>isSerialPeer</h4>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.98">isSerialPeer</a>()</pre>
</li>
</ul>
<a name="cleanUp--">
@@ -567,7 +583,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>cleanUp</h4>
-<pre>protected final void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.112">cleanUp</a>()
+<pre>protected final void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.102">cleanUp</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<dl>
@@ -583,7 +599,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>waitForReplication</h4>
-<pre>protected static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.148">waitForReplication</a>(int expectedRows,
+<pre>protected static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.138">waitForReplication</a>(int expectedRows,
int retries)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -600,7 +616,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>loadData</h4>
-<pre>protected static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.168">loadData</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> prefix,
+<pre>protected static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.158">loadData</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> prefix,
byte[] row)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
@@ -615,7 +631,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>setUpBeforeClass</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.179">setUpBeforeClass</a>()
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.169">setUpBeforeClass</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -623,13 +639,55 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</dl>
</li>
</ul>
+<a name="peerExist-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>peerExist</h4>
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.240">peerExist</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> peerId)
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setUpBase--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBase</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.245">setUpBase</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="tearDownBase--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tearDownBase</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.254">tearDownBase</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="runSimplePutDeleteTest--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runSimplePutDeleteTest</h4>
-<pre>protected static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.256">runSimplePutDeleteTest</a>()
+<pre>protected static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.260">runSimplePutDeleteTest</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<dl>
@@ -645,7 +703,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockList">
<li class="blockList">
<h4>runSmallBatchTest</h4>
-<pre>protected static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.296">runSmallBatchTest</a>()
+<pre>protected static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.300">runSmallBatchTest</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<dl>
@@ -661,7 +719,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
<ul class="blockListLast">
<li class="blockList">
<h4>tearDownAfterClass</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.311">tearDownAfterClass</a>()
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.315">tearDownAfterClass</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
index 9b8c95c..e84ec53 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
@@ -18,8 +18,8 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
<li class="blockList">
<hr>
<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.47">TestReplicationChangingPeerRegionservers</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.56">TestReplicationChangingPeerRegionservers</a>
extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></pre>
<div class="block">Test handling of changes to the number of a peer's regionservers.</div>
</li>
@@ -143,13 +143,17 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#LOG">LOG</a></span></code> </td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#serialPeer">serialPeer</a></span></code> </td>
+</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -177,7 +181,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
@@ -187,10 +191,18 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#doPutTest-byte:A-">doPutTest</a></span>(byte[] row)</code> </td>
</tr>
<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#isSerialPeer--">isSerialPeer</a></span>()</code> </td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#parameters--">parameters</a></span>()</code> </td>
+</tr>
+<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#setUp--">setUp</a></span>()</code> </td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#testChangingNumberOfPeerRegionServers--">testChangingNumberOfPeerRegionServers</a></span>()</code> </td>
</tr>
@@ -200,7 +212,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDown
Base</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -229,16 +241,25 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>CLASS_RULE</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.50">CLASS_RULE</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.59">CLASS_RULE</a></pre>
</li>
</ul>
<a name="LOG">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.53">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.62">LOG</a></pre>
+</li>
+</ul>
+<a name="serialPeer">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialPeer</h4>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.66">serialPeer</a></pre>
</li>
</ul>
</li>
@@ -255,7 +276,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>TestReplicationChangingPeerRegionservers</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.47">TestReplicationChangingPeerRegionservers</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.56">TestReplicationChangingPeerRegionservers</a>()</pre>
</li>
</ul>
</li>
@@ -266,13 +287,35 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Method Detail</h3>
+<a name="isSerialPeer--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSerialPeer</h4>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.69">isSerialPeer</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="parameters--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parameters</h4>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.74">parameters</a>()</pre>
+</li>
+</ul>
<a name="setUp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUp</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.60">setUp</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.82">setUp</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -286,7 +329,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testChangingNumberOfPeerRegionServers</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.96">testChangingNumberOfPeerRegionServers</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.118">testChangingNumberOfPeerRegionServers</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<dl>
@@ -302,7 +345,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>doPutTest</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.122">doPutTest</a>(byte[] row)
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.142">doPutTest</a>(byte[] row)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.html
index 4a56671..c9af198 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.html
@@ -148,7 +148,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -193,7 +193,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
index 9bf4836..6f455f3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
@@ -148,7 +148,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -220,7 +220,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -348,7 +348,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testEditsBehindDroppedTable</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.124">testEditsBehindDroppedTable</a>(boolean allowProceeding,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.130">testEditsBehindDroppedTable</a>(boolean allowProceeding,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> tName)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
@@ -363,7 +363,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testEditsBehindDroppedTableTiming</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.192">testEditsBehindDroppedTableTiming</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.198">testEditsBehindDroppedTableTiming</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -377,7 +377,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>verifyReplicationProceeded</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.264">verifyReplicationProceeded</a>(byte[] rowkey)
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.270">verifyReplicationProceeded</a>(byte[] rowkey)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -391,7 +391,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>verifyReplicationStuck</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.281">verifyReplicationStuck</a>(byte[] rowkey)
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.287">verifyReplicationStuck</a>(byte[] rowkey)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEmptyWALRecovery.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEmptyWALRecovery.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEmptyWALRecovery.html
index e8920f1..9a2b059 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEmptyWALRecovery.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEmptyWALRecovery.html
@@ -144,7 +144,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -197,7 +197,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
index 46df856..d9eba46 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.540">TestReplicationEndpoint.EverythingPassesWALEntryFilter</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.544">TestReplicationEndpoint.EverythingPassesWALEntryFilter</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements org.apache.hadoop.hbase.replication.WALEntryFilter</pre>
</li>
@@ -214,7 +214,7 @@ implements org.apache.hadoop.hbase.replication.WALEntryFilter</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>passedEntry</h4>
-<pre>private static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.541">passedEntry</a></pre>
+<pre>private static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.545">passedEntry</a></pre>
</li>
</ul>
</li>
@@ -231,7 +231,7 @@ implements org.apache.hadoop.hbase.replication.WALEntryFilter</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>EverythingPassesWALEntryFilter</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.540">EverythingPassesWALEntryFilter</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.544">EverythingPassesWALEntryFilter</a>()</pre>
</li>
</ul>
</li>
@@ -248,7 +248,7 @@ implements org.apache.hadoop.hbase.replication.WALEntryFilter</pre>
<ul class="blockList">
<li class="blockList">
<h4>filter</h4>
-<pre>public org.apache.hadoop.hbase.wal.WAL.Entry <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.543">filter</a>(org.apache.hadoop.hbase.wal.WAL.Entry entry)</pre>
+<pre>public org.apache.hadoop.hbase.wal.WAL.Entry <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.547">filter</a>(org.apache.hadoop.hbase.wal.WAL.Entry entry)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>filter</code> in interface <code>org.apache.hadoop.hbase.replication.WALEntryFilter</code></dd>
@@ -261,7 +261,7 @@ implements org.apache.hadoop.hbase.replication.WALEntryFilter</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>hasPassedAnEntry</h4>
-<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.548">hasPassedAnEntry</a>()</pre>
+<pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.552">hasPassedAnEntry</a>()</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
index cd63d24..5018214 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
@@ -116,7 +116,7 @@
</dl>
<hr>
<br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.553">TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.557">TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass</a>
extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationEndpoint.EverythingPassesWALEntryFilter</a></pre>
</li>
</ul>
@@ -181,7 +181,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>EverythingPassesWALEntryFilterSubclass</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html#line.553">EverythingPassesWALEntryFilterSubclass</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html#line.557">EverythingPassesWALEntryFilterSubclass</a>()</pre>
</li>
</ul>
</li>
[34/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html b/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
new file mode 100644
index 0000000..7e8a509
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
@@ -0,0 +1,467 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.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/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.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: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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.quotas</div>
+<h2 title="Class RpcThrottlingException" class="title">Class RpcThrottlingException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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><a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">org.apache.hadoop.hbase.HBaseIOException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.quotas.RpcThrottlingException</li>
+</ul>
+</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="https://docs.oracle.com/javase/8/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
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.27">RpcThrottlingException</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
+<div class="block">Describe the throttling result. TODO: At some point this will be handled on the client side to
+ prevent operation to go on the server if the waitInterval is greater than the one got as result
+ of this exception.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../serialized-form.html#org.apache.hadoop.hbase.quotas.RpcThrottlingException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span></code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type,
+ long waitInterval,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-java.lang.String-">RpcThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType</a></span>()</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code> </td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or
interface in java.lang">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/
api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/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 java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="RpcThrottlingException-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RpcThrottlingException</h4>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.45">RpcThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre>
+</li>
+</ul>
+<a name="RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RpcThrottlingException</h4>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.61">RpcThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type,
+ long waitInterval,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getType--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.67">getType</a>()</pre>
+</li>
+</ul>
+<a name="getWaitInterval--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWaitInterval</h4>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.71">getWaitInterval</a>()</pre>
+</li>
+</ul>
+<a name="throwNumRequestsExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumRequestsExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.75">throwNumRequestsExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwRequestSizeExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwRequestSizeExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.80">throwRequestSizeExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwNumReadRequestsExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumReadRequestsExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.85">throwNumReadRequestsExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwNumWriteRequestsExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumWriteRequestsExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.90">throwNumWriteRequestsExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwWriteSizeExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwWriteSizeExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.95">throwWriteSizeExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwReadSizeExceeded-long-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>throwReadSizeExceeded</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.99">throwReadSizeExceeded</a>(long waitInterval)
+ throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.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/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.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: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/SpaceLimitingException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/SpaceLimitingException.html b/apidocs/org/apache/hadoop/hbase/quotas/SpaceLimitingException.html
index 240fd7c..28a84b5 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/SpaceLimitingException.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/SpaceLimitingException.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
@@ -327,7 +327,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html b/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
index 84f694c..263c114 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
<hr>
<br>
<pre>@InterfaceAudience.Public
-public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.38">ThrottlingException.Type</a>
+public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.41">ThrottlingException.Type</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>></pre>
</li>
</ul>
@@ -223,7 +223,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>NumRequestsExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.39">NumRequestsExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.42">NumRequestsExceeded</a></pre>
</li>
</ul>
<a name="RequestSizeExceeded">
@@ -232,7 +232,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>RequestSizeExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.40">RequestSizeExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.43">RequestSizeExceeded</a></pre>
</li>
</ul>
<a name="NumReadRequestsExceeded">
@@ -241,7 +241,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>NumReadRequestsExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">NumReadRequestsExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.44">NumReadRequestsExceeded</a></pre>
</li>
</ul>
<a name="NumWriteRequestsExceeded">
@@ -250,7 +250,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>NumWriteRequestsExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.42">NumWriteRequestsExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.45">NumWriteRequestsExceeded</a></pre>
</li>
</ul>
<a name="WriteSizeExceeded">
@@ -259,7 +259,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>WriteSizeExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.43">WriteSizeExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.46">WriteSizeExceeded</a></pre>
</li>
</ul>
<a name="ReadSizeExceeded">
@@ -268,7 +268,7 @@ the order they are declared.</div>
<ul class="blockListLast">
<li class="blockList">
<h4>ReadSizeExceeded</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.44">ReadSizeExceeded</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.47">ReadSizeExceeded</a></pre>
</li>
</ul>
</li>
@@ -285,7 +285,7 @@ the order they are declared.</div>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.24">values</a>()</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">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:
@@ -305,7 +305,7 @@ for (ThrottlingException.Type c : ThrottlingException.Type.values())
<ul class="blockListLast">
<li class="blockList">
<h4>valueOf</h4>
-<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.24">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> 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/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html b/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
index 4ddef57..c8e5061 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
@@ -18,8 +18,8 @@
catch(err) {
}
//-->
-var methods = {"i0":9,"i1":10,"i2":10,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":41,"i1":42,"i2":42,"i3":41,"i4":41,"i5":41,"i6":41,"i7":41,"i8":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
@@ -142,9 +142,13 @@ var activeTableTab = "activeTableTab";
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
</dl>
<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
<br>
-<pre>@InterfaceAudience.Public
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.34">ThrottlingException</a>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+ @InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.37">ThrottlingException</a>
extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas">QuotaExceededException</a></pre>
<div class="block">Describe the throttling result.
@@ -175,7 +179,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</table>
</li>
@@ -192,12 +198,16 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
long waitInterval,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</table>
</li>
@@ -209,46 +219,64 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd"> </span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime</a></span>(long timeDiff)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime</a></span>(long timeDiff)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</table>
<ul class="blockList">
@@ -285,7 +313,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>ThrottlingException</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.61">ThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.64">ThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
<a name="ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">
@@ -294,9 +323,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockListLast">
<li class="blockList">
<h4>ThrottlingException</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.77">ThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.80">ThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
long waitInterval,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
</li>
@@ -313,7 +343,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>getType</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.83">getType</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.86">getType</a>()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
<a name="getWaitInterval--">
@@ -322,7 +353,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>getWaitInterval</h4>
-<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.87">getWaitInterval</a>()</pre>
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.90">getWaitInterval</a>()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
<a name="throwNumRequestsExceeded-long-">
@@ -331,8 +363,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwNumRequestsExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.91">throwNumRequestsExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.94">throwNumRequestsExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -345,8 +378,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwRequestSizeExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.96">throwRequestSizeExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.99">throwRequestSizeExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -359,8 +393,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwNumReadRequestsExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.101">throwNumReadRequestsExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.104">throwNumReadRequestsExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -373,8 +408,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwNumWriteRequestsExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.106">throwNumWriteRequestsExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.109">throwNumWriteRequestsExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -387,8 +423,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwWriteSizeExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.111">throwWriteSizeExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.114">throwWriteSizeExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -401,8 +438,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockList">
<li class="blockList">
<h4>throwReadSizeExceeded</h4>
-<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.116">throwReadSizeExceeded</a>(long waitInterval)
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.119">throwReadSizeExceeded</a>(long waitInterval)
throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -415,7 +453,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
<ul class="blockListLast">
<li class="blockList">
<h4>formatTime</h4>
-<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.127">formatTime</a>(long timeDiff)</pre>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.130">formatTime</a>(long timeDiff)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html b/apidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
index 3bd90b2..18c4b08 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
@@ -111,7 +111,9 @@
<tr class="rowColor">
<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
</td>
</tr>
</tbody>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html b/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..0f72e80
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">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/quotas/class-use/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.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.quotas.RpcThrottlingException.Type" class="title">Uses of Class<br>org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd"> </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.quotas">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colLast"> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> that return <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType</a></span>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type,
+ long waitInterval,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">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/quotas/class-use/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html b/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
new file mode 100644
index 0000000..d963d0b
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">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/quotas/class-use/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.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.quotas.RpcThrottlingException" class="title">Uses of Class<br>org.apache.hadoop.hbase.quotas.RpcThrottlingException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span><span class="tabEnd"> </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.quotas">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colLast"> </td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a> in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> that throw <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code> </td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">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/quotas/class-use/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html b/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
index a9a8939..f4b27a7 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
@@ -104,7 +104,9 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
@@ -130,7 +132,9 @@ the order they are declared.</div>
<tr class="altColor">
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
long waitInterval,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td>
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</tbody>
</table>
[21/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
index 7dbb5cc..79759cc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
@@ -18,8 +18,8 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
<li class="blockList">
<hr>
<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.62">TestReplicationSmallTests</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.69">TestReplicationSmallTests</a>
extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></pre>
</li>
</ul>
@@ -146,13 +146,17 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#PEER_ID">PEER_ID</a></span></code> </td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#serialPeer">serialPeer</a></span></code> </td>
+</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -180,60 +184,68 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#isSerialPeer--">isSerialPeer</a></span>()</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#parameters--">parameters</a></span>()</code> </td>
+</tr>
+<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#setUp--">setUp</a></span>()</code> </td>
</tr>
-<tr id="i1" class="rowColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testAddAndRemoveClusters--">testAddAndRemoveClusters</a></span>()</code>
<div class="block">Integration test for TestReplicationAdmin, removes and re-add a peer cluster</div>
</td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testDeleteTypes--">testDeleteTypes</a></span>()</code>
<div class="block">Verify that version and column delete marker types are replicated correctly.</div>
</td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testDisableEnable--">testDisableEnable</a></span>()</code>
<div class="block">Test disable/enable replication, trying to insert, make sure nothing's replicated, enable it,
the insert should be replicated</div>
</td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testLoading--">testLoading</a></span>()</code>
<div class="block">Do a more intense version testSmallBatch, one that will trigger wal rolling and other
non-trivial code paths</div>
</td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testReplicationInReplay--">testReplicationInReplay</a></span>()</code>
<div class="block">Test for HBase-15259 WALEdits under replay will also be replicated</div>
</td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testSimplePutDelete--">testSimplePutDelete</a></span>()</code>
<div class="block">Add a row, check it's replicated, delete it, check's gone</div>
</td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testSmallBatch--">testSmallBatch</a></span>()</code>
<div class="block">Try a small batch upload using the write buffer, check it's replicated</div>
</td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testVerifyListReplicatedTable--">testVerifyListReplicatedTable</a></span>()</code>
<div class="block">Test for HBASE-8663</div>
@@ -245,7 +257,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDown
Base</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -274,7 +286,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>CLASS_RULE</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.65">CLASS_RULE</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.72">CLASS_RULE</a></pre>
</li>
</ul>
<a name="LOG">
@@ -283,22 +295,31 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.68">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.75">LOG</a></pre>
</li>
</ul>
<a name="PEER_ID">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>PEER_ID</h4>
-<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.69">PEER_ID</a></pre>
+<pre>private static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.76">PEER_ID</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationSmallTests.PEER_ID">Constant Field Values</a></dd>
</dl>
</li>
</ul>
+<a name="serialPeer">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialPeer</h4>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.79">serialPeer</a></pre>
+</li>
+</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -313,7 +334,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>TestReplicationSmallTests</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.62">TestReplicationSmallTests</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.69">TestReplicationSmallTests</a>()</pre>
</li>
</ul>
</li>
@@ -324,13 +345,35 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Method Detail</h3>
+<a name="isSerialPeer--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSerialPeer</h4>
+<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.82">isSerialPeer</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="parameters--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parameters</h4>
+<pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.87">parameters</a>()</pre>
+</li>
+</ul>
<a name="setUp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUp</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.72">setUp</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.92">setUp</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -344,7 +387,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testDeleteTypes</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.80">testDeleteTypes</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.100">testDeleteTypes</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Verify that version and column delete marker types are replicated correctly.</div>
<dl>
@@ -359,7 +402,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testSimplePutDelete</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.166">testSimplePutDelete</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.186">testSimplePutDelete</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Add a row, check it's replicated, delete it, check's gone</div>
<dl>
@@ -374,7 +417,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testSmallBatch</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.175">testSmallBatch</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.195">testSmallBatch</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Try a small batch upload using the write buffer, check it's replicated</div>
<dl>
@@ -389,7 +432,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testDisableEnable</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.185">testDisableEnable</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.205">testDisableEnable</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Test disable/enable replication, trying to insert, make sure nothing's replicated, enable it,
the insert should be replicated</div>
@@ -405,7 +448,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testAddAndRemoveClusters</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.225">testAddAndRemoveClusters</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.245">testAddAndRemoveClusters</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Integration test for TestReplicationAdmin, removes and re-add a peer cluster</div>
<dl>
@@ -420,7 +463,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testLoading</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.278">testLoading</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.298">testLoading</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Do a more intense version testSmallBatch, one that will trigger wal rolling and other
non-trivial code paths</div>
@@ -436,7 +479,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>testVerifyListReplicatedTable</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.339">testVerifyListReplicatedTable</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.359">testVerifyListReplicatedTable</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Test for HBASE-8663
<p>
@@ -455,7 +498,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>testReplicationInReplay</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.388">testReplicationInReplay</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.408">testReplicationInReplay</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Test for HBase-15259 WALEdits under replay will also be replicated</div>
<dl>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatus.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatus.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatus.html
index 4f6900b..0104f75 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatus.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatus.html
@@ -152,7 +152,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -202,7 +202,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
index cbf986d..ce1e4ed 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.50">TestReplicationSyncUpTool</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.52">TestReplicationSyncUpTool</a>
extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></pre>
</li>
</ul>
@@ -204,7 +204,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_B
ATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#
zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_B
ATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>
, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -263,6 +263,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#tearDownBase--">tearDownBase</a></span>()</code> </td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#testSyncUpTool--">testSyncUpTool</a></span>()</code>
<div class="block">Add a row to a table in each cluster, check it's replicated, delete it,
check's gone Also check the puts and deletes are not replicated back to
@@ -275,7 +279,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -304,7 +308,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>CLASS_RULE</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.53">CLASS_RULE</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.55">CLASS_RULE</a></pre>
</li>
</ul>
<a name="LOG">
@@ -313,7 +317,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
-<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.56">LOG</a></pre>
+<pre>private static final org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.58">LOG</a></pre>
</li>
</ul>
<a name="t1_su">
@@ -322,7 +326,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>t1_su</h4>
-<pre>private static final org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.58">t1_su</a></pre>
+<pre>private static final org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.60">t1_su</a></pre>
</li>
</ul>
<a name="t2_su">
@@ -331,7 +335,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>t2_su</h4>
-<pre>private static final org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.59">t2_su</a></pre>
+<pre>private static final org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.61">t2_su</a></pre>
</li>
</ul>
<a name="famName">
@@ -340,7 +344,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>famName</h4>
-<pre>protected static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.61">famName</a></pre>
+<pre>protected static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.63">famName</a></pre>
</li>
</ul>
<a name="qualName">
@@ -349,7 +353,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>qualName</h4>
-<pre>private static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.62">qualName</a></pre>
+<pre>private static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.64">qualName</a></pre>
</li>
</ul>
<a name="noRepfamName">
@@ -358,7 +362,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>noRepfamName</h4>
-<pre>protected static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.64">noRepfamName</a></pre>
+<pre>protected static final byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.66">noRepfamName</a></pre>
</li>
</ul>
<a name="t1_syncupSource">
@@ -367,7 +371,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>t1_syncupSource</h4>
-<pre>private org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.66">t1_syncupSource</a></pre>
+<pre>private org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.68">t1_syncupSource</a></pre>
</li>
</ul>
<a name="t1_syncupTarget">
@@ -376,7 +380,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>t1_syncupTarget</h4>
-<pre>private org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.66">t1_syncupTarget</a></pre>
+<pre>private org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.68">t1_syncupTarget</a></pre>
</li>
</ul>
<a name="t2_syncupSource">
@@ -385,7 +389,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>t2_syncupSource</h4>
-<pre>private org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.67">t2_syncupSource</a></pre>
+<pre>private org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">t2_syncupSource</a></pre>
</li>
</ul>
<a name="t2_syncupTarget">
@@ -394,7 +398,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>t2_syncupTarget</h4>
-<pre>private org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.67">t2_syncupTarget</a></pre>
+<pre>private org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">t2_syncupTarget</a></pre>
</li>
</ul>
<a name="ht1Source">
@@ -403,7 +407,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>ht1Source</h4>
-<pre>protected org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">ht1Source</a></pre>
+<pre>protected org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.71">ht1Source</a></pre>
</li>
</ul>
<a name="ht2Source">
@@ -412,7 +416,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>ht2Source</h4>
-<pre>protected org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">ht2Source</a></pre>
+<pre>protected org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.71">ht2Source</a></pre>
</li>
</ul>
<a name="ht1TargetAtPeer1">
@@ -421,7 +425,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>ht1TargetAtPeer1</h4>
-<pre>protected org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">ht1TargetAtPeer1</a></pre>
+<pre>protected org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.71">ht1TargetAtPeer1</a></pre>
</li>
</ul>
<a name="ht2TargetAtPeer1">
@@ -430,7 +434,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>ht2TargetAtPeer1</h4>
-<pre>protected org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">ht2TargetAtPeer1</a></pre>
+<pre>protected org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.71">ht2TargetAtPeer1</a></pre>
</li>
</ul>
</li>
@@ -447,7 +451,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>TestReplicationSyncUpTool</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.50">TestReplicationSyncUpTool</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.52">TestReplicationSyncUpTool</a>()</pre>
</li>
</ul>
</li>
@@ -464,7 +468,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>setUp</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.72">setUp</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.74">setUp</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -472,13 +476,29 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
</dl>
</li>
</ul>
+<a name="tearDownBase--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tearDownBase</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.105">tearDownBase</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a></code> in class <code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
<a name="testSyncUpTool--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSyncUpTool</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.109">testSyncUpTool</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.116">testSyncUpTool</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Add a row to a table in each cluster, check it's replicated, delete it,
check's gone Also check the puts and deletes are not replicated back to
@@ -495,7 +515,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>setupReplication</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.186">setupReplication</a>()
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.193">setupReplication</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -509,7 +529,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>putAndReplicateRows</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.222">putAndReplicateRows</a>()
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.229">putAndReplicateRows</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -523,7 +543,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>mimicSyncUpAfterDelete</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.276">mimicSyncUpAfterDelete</a>()
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.283">mimicSyncUpAfterDelete</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -537,7 +557,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockList">
<li class="blockList">
<h4>mimicSyncUpAfterPut</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.346">mimicSyncUpAfterPut</a>()
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.353">mimicSyncUpAfterPut</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -551,7 +571,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>syncUp</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.423">syncUp</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> ut)
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.430">syncUp</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> ut)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.html
index 844960c..c7167ad 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.html
@@ -160,7 +160,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_B
ATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#
zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_B
ATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>
, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -235,14 +235,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSyncUpTool</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#tearDownBase--">tearDownBase</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">wai
tForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestVerifyReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestVerifyReplication.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestVerifyReplication.html
index 1f5d4ae..1b1b493 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestVerifyReplication.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestVerifyReplication.html
@@ -156,7 +156,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -245,7 +245,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</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/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationBase.html b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationBase.html
index 192d67e..fbd4097 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationBase.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationBase.html
@@ -178,15 +178,23 @@
</tr>
<tr class="altColor">
<td class="colFirst"><code>class </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></span></code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></span></code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></span></code>
<div class="block">Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster
Do not add other tests in this class.</div>
</td>
</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></span></code> </td>
+</tr>
<tr class="altColor">
<td class="colFirst"><code>class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSmallTests</a></span></code> </td>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..8af29c3
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">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/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillMasterRSWithSeparateOldWALs.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.replication.TestReplicationKillMasterRSWithSeparateOldWALs" class="title">Uses of Class<br>org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">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/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillMasterRSWithSeparateOldWALs.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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
[02/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
index 5ddb646..9c2663d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
@@ -27,411 +27,418 @@
<span class="sourceLineNo">019</span><a name="line.19"></a>
<span class="sourceLineNo">020</span>import static org.junit.Assert.assertEquals;<a name="line.20"></a>
<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.util.ArrayList;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.List;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HConstants;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.TableName;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.Put;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Table;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.util.ToolRunner;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.junit.Before;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.ClassRule;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.Test;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.experimental.categories.Category;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.slf4j.Logger;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.slf4j.LoggerFactory;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>@Category({ReplicationTests.class, LargeTests.class})<a name="line.49"></a>
-<span class="sourceLineNo">050</span>public class TestReplicationSyncUpTool extends TestReplicationBase {<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span> @ClassRule<a name="line.52"></a>
-<span class="sourceLineNo">053</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.53"></a>
-<span class="sourceLineNo">054</span> HBaseClassTestRule.forClass(TestReplicationSyncUpTool.class);<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span> private static final Logger LOG = LoggerFactory.getLogger(TestReplicationSyncUpTool.class);<a name="line.56"></a>
+<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.ArrayList;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HConstants;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.TableName;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Put;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.Table;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.util.ToolRunner;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.junit.After;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.junit.Before;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.junit.ClassRule;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.junit.Test;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.junit.experimental.categories.Category;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.slf4j.Logger;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.slf4j.LoggerFactory;<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.51"></a>
+<span class="sourceLineNo">052</span>public class TestReplicationSyncUpTool extends TestReplicationBase {<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span> @ClassRule<a name="line.54"></a>
+<span class="sourceLineNo">055</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.55"></a>
+<span class="sourceLineNo">056</span> HBaseClassTestRule.forClass(TestReplicationSyncUpTool.class);<a name="line.56"></a>
<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span> private static final TableName t1_su = TableName.valueOf("t1_syncup");<a name="line.58"></a>
-<span class="sourceLineNo">059</span> private static final TableName t2_su = TableName.valueOf("t2_syncup");<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span> protected static final byte[] famName = Bytes.toBytes("cf1");<a name="line.61"></a>
-<span class="sourceLineNo">062</span> private static final byte[] qualName = Bytes.toBytes("q1");<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span> protected static final byte[] noRepfamName = Bytes.toBytes("norep");<a name="line.64"></a>
+<span class="sourceLineNo">058</span> private static final Logger LOG = LoggerFactory.getLogger(TestReplicationSyncUpTool.class);<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span> private static final TableName t1_su = TableName.valueOf("t1_syncup");<a name="line.60"></a>
+<span class="sourceLineNo">061</span> private static final TableName t2_su = TableName.valueOf("t2_syncup");<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span> protected static final byte[] famName = Bytes.toBytes("cf1");<a name="line.63"></a>
+<span class="sourceLineNo">064</span> private static final byte[] qualName = Bytes.toBytes("q1");<a name="line.64"></a>
<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span> private HTableDescriptor t1_syncupSource, t1_syncupTarget;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> private HTableDescriptor t2_syncupSource, t2_syncupTarget;<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span> protected Table ht1Source, ht2Source, ht1TargetAtPeer1, ht2TargetAtPeer1;<a name="line.69"></a>
+<span class="sourceLineNo">066</span> protected static final byte[] noRepfamName = Bytes.toBytes("norep");<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span> private HTableDescriptor t1_syncupSource, t1_syncupTarget;<a name="line.68"></a>
+<span class="sourceLineNo">069</span> private HTableDescriptor t2_syncupSource, t2_syncupTarget;<a name="line.69"></a>
<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span> @Before<a name="line.71"></a>
-<span class="sourceLineNo">072</span> public void setUp() throws Exception {<a name="line.72"></a>
-<span class="sourceLineNo">073</span> HColumnDescriptor fam;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span> t1_syncupSource = new HTableDescriptor(t1_su);<a name="line.75"></a>
-<span class="sourceLineNo">076</span> fam = new HColumnDescriptor(famName);<a name="line.76"></a>
-<span class="sourceLineNo">077</span> fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.77"></a>
-<span class="sourceLineNo">078</span> t1_syncupSource.addFamily(fam);<a name="line.78"></a>
-<span class="sourceLineNo">079</span> fam = new HColumnDescriptor(noRepfamName);<a name="line.79"></a>
+<span class="sourceLineNo">071</span> protected Table ht1Source, ht2Source, ht1TargetAtPeer1, ht2TargetAtPeer1;<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span> @Before<a name="line.73"></a>
+<span class="sourceLineNo">074</span> public void setUp() throws Exception {<a name="line.74"></a>
+<span class="sourceLineNo">075</span> HColumnDescriptor fam;<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span> t1_syncupSource = new HTableDescriptor(t1_su);<a name="line.77"></a>
+<span class="sourceLineNo">078</span> fam = new HColumnDescriptor(famName);<a name="line.78"></a>
+<span class="sourceLineNo">079</span> fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.79"></a>
<span class="sourceLineNo">080</span> t1_syncupSource.addFamily(fam);<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span> t1_syncupTarget = new HTableDescriptor(t1_su);<a name="line.82"></a>
-<span class="sourceLineNo">083</span> fam = new HColumnDescriptor(famName);<a name="line.83"></a>
-<span class="sourceLineNo">084</span> t1_syncupTarget.addFamily(fam);<a name="line.84"></a>
-<span class="sourceLineNo">085</span> fam = new HColumnDescriptor(noRepfamName);<a name="line.85"></a>
+<span class="sourceLineNo">081</span> fam = new HColumnDescriptor(noRepfamName);<a name="line.81"></a>
+<span class="sourceLineNo">082</span> t1_syncupSource.addFamily(fam);<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span> t1_syncupTarget = new HTableDescriptor(t1_su);<a name="line.84"></a>
+<span class="sourceLineNo">085</span> fam = new HColumnDescriptor(famName);<a name="line.85"></a>
<span class="sourceLineNo">086</span> t1_syncupTarget.addFamily(fam);<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span> t2_syncupSource = new HTableDescriptor(t2_su);<a name="line.88"></a>
-<span class="sourceLineNo">089</span> fam = new HColumnDescriptor(famName);<a name="line.89"></a>
-<span class="sourceLineNo">090</span> fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.90"></a>
-<span class="sourceLineNo">091</span> t2_syncupSource.addFamily(fam);<a name="line.91"></a>
-<span class="sourceLineNo">092</span> fam = new HColumnDescriptor(noRepfamName);<a name="line.92"></a>
+<span class="sourceLineNo">087</span> fam = new HColumnDescriptor(noRepfamName);<a name="line.87"></a>
+<span class="sourceLineNo">088</span> t1_syncupTarget.addFamily(fam);<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span> t2_syncupSource = new HTableDescriptor(t2_su);<a name="line.90"></a>
+<span class="sourceLineNo">091</span> fam = new HColumnDescriptor(famName);<a name="line.91"></a>
+<span class="sourceLineNo">092</span> fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.92"></a>
<span class="sourceLineNo">093</span> t2_syncupSource.addFamily(fam);<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span> t2_syncupTarget = new HTableDescriptor(t2_su);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> fam = new HColumnDescriptor(famName);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> t2_syncupTarget.addFamily(fam);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> fam = new HColumnDescriptor(noRepfamName);<a name="line.98"></a>
+<span class="sourceLineNo">094</span> fam = new HColumnDescriptor(noRepfamName);<a name="line.94"></a>
+<span class="sourceLineNo">095</span> t2_syncupSource.addFamily(fam);<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span> t2_syncupTarget = new HTableDescriptor(t2_su);<a name="line.97"></a>
+<span class="sourceLineNo">098</span> fam = new HColumnDescriptor(famName);<a name="line.98"></a>
<span class="sourceLineNo">099</span> t2_syncupTarget.addFamily(fam);<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span> }<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span> /**<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * Add a row to a table in each cluster, check it's replicated, delete it,<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * check's gone Also check the puts and deletes are not replicated back to<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * the originating cluster.<a name="line.106"></a>
-<span class="sourceLineNo">107</span> */<a name="line.107"></a>
-<span class="sourceLineNo">108</span> @Test<a name="line.108"></a>
-<span class="sourceLineNo">109</span> public void testSyncUpTool() throws Exception {<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span> /**<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * Set up Replication: on Master and one Slave<a name="line.112"></a>
-<span class="sourceLineNo">113</span> * Table: t1_syncup and t2_syncup<a name="line.113"></a>
-<span class="sourceLineNo">114</span> * columnfamily:<a name="line.114"></a>
-<span class="sourceLineNo">115</span> * 'cf1' : replicated<a name="line.115"></a>
-<span class="sourceLineNo">116</span> * 'norep': not replicated<a name="line.116"></a>
-<span class="sourceLineNo">117</span> */<a name="line.117"></a>
-<span class="sourceLineNo">118</span> setupReplication();<a name="line.118"></a>
-<span class="sourceLineNo">119</span><a name="line.119"></a>
-<span class="sourceLineNo">120</span> /**<a name="line.120"></a>
-<span class="sourceLineNo">121</span> * at Master:<a name="line.121"></a>
-<span class="sourceLineNo">122</span> * t1_syncup: put 100 rows into cf1, and 1 rows into norep<a name="line.122"></a>
-<span class="sourceLineNo">123</span> * t2_syncup: put 200 rows into cf1, and 1 rows into norep<a name="line.123"></a>
-<span class="sourceLineNo">124</span> *<a name="line.124"></a>
-<span class="sourceLineNo">125</span> * verify correctly replicated to slave<a name="line.125"></a>
-<span class="sourceLineNo">126</span> */<a name="line.126"></a>
-<span class="sourceLineNo">127</span> putAndReplicateRows();<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> * Verify delete works<a name="line.130"></a>
+<span class="sourceLineNo">100</span> fam = new HColumnDescriptor(noRepfamName);<a name="line.100"></a>
+<span class="sourceLineNo">101</span> t2_syncupTarget.addFamily(fam);<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span> @After<a name="line.104"></a>
+<span class="sourceLineNo">105</span> public void tearDownBase() throws IOException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span> // Do nothing, just replace the super tearDown. because the super tearDown will use the<a name="line.106"></a>
+<span class="sourceLineNo">107</span> // out-of-data HBase admin to remove replication peer, which will be result in failure.<a name="line.107"></a>
+<span class="sourceLineNo">108</span> }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span> /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * Add a row to a table in each cluster, check it's replicated, delete it,<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * check's gone Also check the puts and deletes are not replicated back to<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * the originating cluster.<a name="line.113"></a>
+<span class="sourceLineNo">114</span> */<a name="line.114"></a>
+<span class="sourceLineNo">115</span> @Test<a name="line.115"></a>
+<span class="sourceLineNo">116</span> public void testSyncUpTool() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span> /**<a name="line.118"></a>
+<span class="sourceLineNo">119</span> * Set up Replication: on Master and one Slave<a name="line.119"></a>
+<span class="sourceLineNo">120</span> * Table: t1_syncup and t2_syncup<a name="line.120"></a>
+<span class="sourceLineNo">121</span> * columnfamily:<a name="line.121"></a>
+<span class="sourceLineNo">122</span> * 'cf1' : replicated<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * 'norep': not replicated<a name="line.123"></a>
+<span class="sourceLineNo">124</span> */<a name="line.124"></a>
+<span class="sourceLineNo">125</span> setupReplication();<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> * at Master:<a name="line.128"></a>
+<span class="sourceLineNo">129</span> * t1_syncup: put 100 rows into cf1, and 1 rows into norep<a name="line.129"></a>
+<span class="sourceLineNo">130</span> * t2_syncup: put 200 rows into cf1, and 1 rows into norep<a name="line.130"></a>
<span class="sourceLineNo">131</span> *<a name="line.131"></a>
-<span class="sourceLineNo">132</span> * step 1: stop hbase on Slave<a name="line.132"></a>
-<span class="sourceLineNo">133</span> *<a name="line.133"></a>
-<span class="sourceLineNo">134</span> * step 2: at Master:<a name="line.134"></a>
-<span class="sourceLineNo">135</span> * t1_syncup: delete 50 rows from cf1<a name="line.135"></a>
-<span class="sourceLineNo">136</span> * t2_syncup: delete 100 rows from cf1<a name="line.136"></a>
-<span class="sourceLineNo">137</span> * no change on 'norep'<a name="line.137"></a>
+<span class="sourceLineNo">132</span> * verify correctly replicated to slave<a name="line.132"></a>
+<span class="sourceLineNo">133</span> */<a name="line.133"></a>
+<span class="sourceLineNo">134</span> putAndReplicateRows();<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span> /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span> * Verify delete works<a name="line.137"></a>
<span class="sourceLineNo">138</span> *<a name="line.138"></a>
-<span class="sourceLineNo">139</span> * step 3: stop hbase on master, restart hbase on Slave<a name="line.139"></a>
+<span class="sourceLineNo">139</span> * step 1: stop hbase on Slave<a name="line.139"></a>
<span class="sourceLineNo">140</span> *<a name="line.140"></a>
-<span class="sourceLineNo">141</span> * step 4: verify Slave still have the rows before delete<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * t1_syncup: 100 rows from cf1<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * t2_syncup: 200 rows from cf1<a name="line.143"></a>
-<span class="sourceLineNo">144</span> *<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * step 5: run syncup tool on Master<a name="line.145"></a>
-<span class="sourceLineNo">146</span> *<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * step 6: verify that delete show up on Slave<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * t1_syncup: 50 rows from cf1<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * t2_syncup: 100 rows from cf1<a name="line.149"></a>
-<span class="sourceLineNo">150</span> *<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * verify correctly replicated to Slave<a name="line.151"></a>
-<span class="sourceLineNo">152</span> */<a name="line.152"></a>
-<span class="sourceLineNo">153</span> mimicSyncUpAfterDelete();<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> * Verify put works<a name="line.156"></a>
+<span class="sourceLineNo">141</span> * step 2: at Master:<a name="line.141"></a>
+<span class="sourceLineNo">142</span> * t1_syncup: delete 50 rows from cf1<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * t2_syncup: delete 100 rows from cf1<a name="line.143"></a>
+<span class="sourceLineNo">144</span> * no change on 'norep'<a name="line.144"></a>
+<span class="sourceLineNo">145</span> *<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * step 3: stop hbase on master, restart hbase on Slave<a name="line.146"></a>
+<span class="sourceLineNo">147</span> *<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * step 4: verify Slave still have the rows before delete<a name="line.148"></a>
+<span class="sourceLineNo">149</span> * t1_syncup: 100 rows from cf1<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * t2_syncup: 200 rows from cf1<a name="line.150"></a>
+<span class="sourceLineNo">151</span> *<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * step 5: run syncup tool on Master<a name="line.152"></a>
+<span class="sourceLineNo">153</span> *<a name="line.153"></a>
+<span class="sourceLineNo">154</span> * step 6: verify that delete show up on Slave<a name="line.154"></a>
+<span class="sourceLineNo">155</span> * t1_syncup: 50 rows from cf1<a name="line.155"></a>
+<span class="sourceLineNo">156</span> * t2_syncup: 100 rows from cf1<a name="line.156"></a>
<span class="sourceLineNo">157</span> *<a name="line.157"></a>
-<span class="sourceLineNo">158</span> * step 1: stop hbase on Slave<a name="line.158"></a>
-<span class="sourceLineNo">159</span> *<a name="line.159"></a>
-<span class="sourceLineNo">160</span> * step 2: at Master:<a name="line.160"></a>
-<span class="sourceLineNo">161</span> * t1_syncup: put 100 rows from cf1<a name="line.161"></a>
-<span class="sourceLineNo">162</span> * t2_syncup: put 200 rows from cf1<a name="line.162"></a>
-<span class="sourceLineNo">163</span> * and put another row on 'norep'<a name="line.163"></a>
-<span class="sourceLineNo">164</span> * ATTN: put to 'cf1' will overwrite existing rows, so end count will<a name="line.164"></a>
-<span class="sourceLineNo">165</span> * be 100 and 200 respectively<a name="line.165"></a>
-<span class="sourceLineNo">166</span> * put to 'norep' will add a new row.<a name="line.166"></a>
-<span class="sourceLineNo">167</span> *<a name="line.167"></a>
-<span class="sourceLineNo">168</span> * step 3: stop hbase on master, restart hbase on Slave<a name="line.168"></a>
-<span class="sourceLineNo">169</span> *<a name="line.169"></a>
-<span class="sourceLineNo">170</span> * step 4: verify Slave still has the rows before put<a name="line.170"></a>
-<span class="sourceLineNo">171</span> * t1_syncup: 50 rows from cf1<a name="line.171"></a>
-<span class="sourceLineNo">172</span> * t2_syncup: 100 rows from cf1<a name="line.172"></a>
-<span class="sourceLineNo">173</span> *<a name="line.173"></a>
-<span class="sourceLineNo">174</span> * step 5: run syncup tool on Master<a name="line.174"></a>
-<span class="sourceLineNo">175</span> *<a name="line.175"></a>
-<span class="sourceLineNo">176</span> * step 6: verify that put show up on Slave<a name="line.176"></a>
-<span class="sourceLineNo">177</span> * and 'norep' does not<a name="line.177"></a>
-<span class="sourceLineNo">178</span> * t1_syncup: 100 rows from cf1<a name="line.178"></a>
-<span class="sourceLineNo">179</span> * t2_syncup: 200 rows from cf1<a name="line.179"></a>
+<span class="sourceLineNo">158</span> * verify correctly replicated to Slave<a name="line.158"></a>
+<span class="sourceLineNo">159</span> */<a name="line.159"></a>
+<span class="sourceLineNo">160</span> mimicSyncUpAfterDelete();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span> /**<a name="line.162"></a>
+<span class="sourceLineNo">163</span> * Verify put works<a name="line.163"></a>
+<span class="sourceLineNo">164</span> *<a name="line.164"></a>
+<span class="sourceLineNo">165</span> * step 1: stop hbase on Slave<a name="line.165"></a>
+<span class="sourceLineNo">166</span> *<a name="line.166"></a>
+<span class="sourceLineNo">167</span> * step 2: at Master:<a name="line.167"></a>
+<span class="sourceLineNo">168</span> * t1_syncup: put 100 rows from cf1<a name="line.168"></a>
+<span class="sourceLineNo">169</span> * t2_syncup: put 200 rows from cf1<a name="line.169"></a>
+<span class="sourceLineNo">170</span> * and put another row on 'norep'<a name="line.170"></a>
+<span class="sourceLineNo">171</span> * ATTN: put to 'cf1' will overwrite existing rows, so end count will<a name="line.171"></a>
+<span class="sourceLineNo">172</span> * be 100 and 200 respectively<a name="line.172"></a>
+<span class="sourceLineNo">173</span> * put to 'norep' will add a new row.<a name="line.173"></a>
+<span class="sourceLineNo">174</span> *<a name="line.174"></a>
+<span class="sourceLineNo">175</span> * step 3: stop hbase on master, restart hbase on Slave<a name="line.175"></a>
+<span class="sourceLineNo">176</span> *<a name="line.176"></a>
+<span class="sourceLineNo">177</span> * step 4: verify Slave still has the rows before put<a name="line.177"></a>
+<span class="sourceLineNo">178</span> * t1_syncup: 50 rows from cf1<a name="line.178"></a>
+<span class="sourceLineNo">179</span> * t2_syncup: 100 rows from cf1<a name="line.179"></a>
<span class="sourceLineNo">180</span> *<a name="line.180"></a>
-<span class="sourceLineNo">181</span> * verify correctly replicated to Slave<a name="line.181"></a>
-<span class="sourceLineNo">182</span> */<a name="line.182"></a>
-<span class="sourceLineNo">183</span> mimicSyncUpAfterPut();<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> protected void setupReplication() throws Exception {<a name="line.186"></a>
-<span class="sourceLineNo">187</span> ReplicationAdmin admin1 = new ReplicationAdmin(conf1);<a name="line.187"></a>
-<span class="sourceLineNo">188</span> ReplicationAdmin admin2 = new ReplicationAdmin(conf2);<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span> Admin ha = utility1.getAdmin();<a name="line.190"></a>
-<span class="sourceLineNo">191</span> ha.createTable(t1_syncupSource);<a name="line.191"></a>
-<span class="sourceLineNo">192</span> ha.createTable(t2_syncupSource);<a name="line.192"></a>
-<span class="sourceLineNo">193</span> ha.close();<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span> ha = utility2.getAdmin();<a name="line.195"></a>
-<span class="sourceLineNo">196</span> ha.createTable(t1_syncupTarget);<a name="line.196"></a>
-<span class="sourceLineNo">197</span> ha.createTable(t2_syncupTarget);<a name="line.197"></a>
-<span class="sourceLineNo">198</span> ha.close();<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span> Connection connection1 = ConnectionFactory.createConnection(utility1.getConfiguration());<a name="line.200"></a>
-<span class="sourceLineNo">201</span> Connection connection2 = ConnectionFactory.createConnection(utility2.getConfiguration());<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span> // Get HTable from Master<a name="line.203"></a>
-<span class="sourceLineNo">204</span> ht1Source = connection1.getTable(t1_su);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> ht2Source = connection1.getTable(t2_su);<a name="line.205"></a>
+<span class="sourceLineNo">181</span> * step 5: run syncup tool on Master<a name="line.181"></a>
+<span class="sourceLineNo">182</span> *<a name="line.182"></a>
+<span class="sourceLineNo">183</span> * step 6: verify that put show up on Slave<a name="line.183"></a>
+<span class="sourceLineNo">184</span> * and 'norep' does not<a name="line.184"></a>
+<span class="sourceLineNo">185</span> * t1_syncup: 100 rows from cf1<a name="line.185"></a>
+<span class="sourceLineNo">186</span> * t2_syncup: 200 rows from cf1<a name="line.186"></a>
+<span class="sourceLineNo">187</span> *<a name="line.187"></a>
+<span class="sourceLineNo">188</span> * verify correctly replicated to Slave<a name="line.188"></a>
+<span class="sourceLineNo">189</span> */<a name="line.189"></a>
+<span class="sourceLineNo">190</span> mimicSyncUpAfterPut();<a name="line.190"></a>
+<span class="sourceLineNo">191</span> }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span> protected void setupReplication() throws Exception {<a name="line.193"></a>
+<span class="sourceLineNo">194</span> ReplicationAdmin admin1 = new ReplicationAdmin(conf1);<a name="line.194"></a>
+<span class="sourceLineNo">195</span> ReplicationAdmin admin2 = new ReplicationAdmin(conf2);<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span> Admin ha = utility1.getAdmin();<a name="line.197"></a>
+<span class="sourceLineNo">198</span> ha.createTable(t1_syncupSource);<a name="line.198"></a>
+<span class="sourceLineNo">199</span> ha.createTable(t2_syncupSource);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> ha.close();<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span> ha = utility2.getAdmin();<a name="line.202"></a>
+<span class="sourceLineNo">203</span> ha.createTable(t1_syncupTarget);<a name="line.203"></a>
+<span class="sourceLineNo">204</span> ha.createTable(t2_syncupTarget);<a name="line.204"></a>
+<span class="sourceLineNo">205</span> ha.close();<a name="line.205"></a>
<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span> // Get HTable from Peer1<a name="line.207"></a>
-<span class="sourceLineNo">208</span> ht1TargetAtPeer1 = connection2.getTable(t1_su);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> ht2TargetAtPeer1 = connection2.getTable(t2_su);<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> /**<a name="line.211"></a>
-<span class="sourceLineNo">212</span> * set M-S : Master: utility1 Slave1: utility2<a name="line.212"></a>
-<span class="sourceLineNo">213</span> */<a name="line.213"></a>
-<span class="sourceLineNo">214</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.214"></a>
-<span class="sourceLineNo">215</span> rpc.setClusterKey(utility2.getClusterKey());<a name="line.215"></a>
-<span class="sourceLineNo">216</span> admin1.addPeer("1", rpc, null);<a name="line.216"></a>
+<span class="sourceLineNo">207</span> Connection connection1 = ConnectionFactory.createConnection(utility1.getConfiguration());<a name="line.207"></a>
+<span class="sourceLineNo">208</span> Connection connection2 = ConnectionFactory.createConnection(utility2.getConfiguration());<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> // Get HTable from Master<a name="line.210"></a>
+<span class="sourceLineNo">211</span> ht1Source = connection1.getTable(t1_su);<a name="line.211"></a>
+<span class="sourceLineNo">212</span> ht2Source = connection1.getTable(t2_su);<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span> // Get HTable from Peer1<a name="line.214"></a>
+<span class="sourceLineNo">215</span> ht1TargetAtPeer1 = connection2.getTable(t1_su);<a name="line.215"></a>
+<span class="sourceLineNo">216</span> ht2TargetAtPeer1 = connection2.getTable(t2_su);<a name="line.216"></a>
<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span> admin1.close();<a name="line.218"></a>
-<span class="sourceLineNo">219</span> admin2.close();<a name="line.219"></a>
-<span class="sourceLineNo">220</span> }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span> private void putAndReplicateRows() throws Exception {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> LOG.debug("putAndReplicateRows");<a name="line.223"></a>
-<span class="sourceLineNo">224</span> // add rows to Master cluster,<a name="line.224"></a>
-<span class="sourceLineNo">225</span> Put p;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span> // 100 + 1 row to t1_syncup<a name="line.227"></a>
-<span class="sourceLineNo">228</span> for (int i = 0; i < NB_ROWS_IN_BATCH; i++) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span> p = new Put(Bytes.toBytes("row" + i));<a name="line.229"></a>
-<span class="sourceLineNo">230</span> p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.230"></a>
-<span class="sourceLineNo">231</span> ht1Source.put(p);<a name="line.231"></a>
-<span class="sourceLineNo">232</span> }<a name="line.232"></a>
-<span class="sourceLineNo">233</span> p = new Put(Bytes.toBytes("row" + 9999));<a name="line.233"></a>
-<span class="sourceLineNo">234</span> p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9999));<a name="line.234"></a>
-<span class="sourceLineNo">235</span> ht1Source.put(p);<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span> // 200 + 1 row to t2_syncup<a name="line.237"></a>
-<span class="sourceLineNo">238</span> for (int i = 0; i < NB_ROWS_IN_BATCH * 2; i++) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> p = new Put(Bytes.toBytes("row" + i));<a name="line.239"></a>
-<span class="sourceLineNo">240</span> p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.240"></a>
-<span class="sourceLineNo">241</span> ht2Source.put(p);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> }<a name="line.242"></a>
-<span class="sourceLineNo">243</span> p = new Put(Bytes.toBytes("row" + 9999));<a name="line.243"></a>
-<span class="sourceLineNo">244</span> p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9999));<a name="line.244"></a>
-<span class="sourceLineNo">245</span> ht2Source.put(p);<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span> // ensure replication completed<a name="line.247"></a>
-<span class="sourceLineNo">248</span> Thread.sleep(SLEEP_TIME);<a name="line.248"></a>
-<span class="sourceLineNo">249</span> int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.249"></a>
-<span class="sourceLineNo">250</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span> int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.251"></a>
-<span class="sourceLineNo">252</span> if (i==NB_RETRIES-1) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span> assertEquals("t1_syncup has 101 rows on source, and 100 on slave1", rowCount_ht1Source - 1,<a name="line.253"></a>
-<span class="sourceLineNo">254</span> rowCount_ht1TargetAtPeer1);<a name="line.254"></a>
-<span class="sourceLineNo">255</span> }<a name="line.255"></a>
-<span class="sourceLineNo">256</span> if (rowCount_ht1Source - 1 == rowCount_ht1TargetAtPeer1) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span> break;<a name="line.257"></a>
-<span class="sourceLineNo">258</span> }<a name="line.258"></a>
-<span class="sourceLineNo">259</span> Thread.sleep(SLEEP_TIME);<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> int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span> int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.264"></a>
-<span class="sourceLineNo">265</span> if (i==NB_RETRIES-1) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span> assertEquals("t2_syncup has 201 rows on source, and 200 on slave1", rowCount_ht2Source - 1,<a name="line.266"></a>
-<span class="sourceLineNo">267</span> rowCount_ht2TargetAtPeer1);<a name="line.267"></a>
-<span class="sourceLineNo">268</span> }<a name="line.268"></a>
-<span class="sourceLineNo">269</span> if (rowCount_ht2Source - 1 == rowCount_ht2TargetAtPeer1) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span> break;<a name="line.270"></a>
-<span class="sourceLineNo">271</span> }<a name="line.271"></a>
-<span class="sourceLineNo">272</span> Thread.sleep(SLEEP_TIME);<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><a name="line.275"></a>
-<span class="sourceLineNo">276</span> private void mimicSyncUpAfterDelete() throws Exception {<a name="line.276"></a>
-<span class="sourceLineNo">277</span> LOG.debug("mimicSyncUpAfterDelete");<a name="line.277"></a>
-<span class="sourceLineNo">278</span> utility2.shutdownMiniHBaseCluster();<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> List<Delete> list = new ArrayList<>();<a name="line.280"></a>
-<span class="sourceLineNo">281</span> // delete half of the rows<a name="line.281"></a>
-<span class="sourceLineNo">282</span> for (int i = 0; i < NB_ROWS_IN_BATCH / 2; i++) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span> String rowKey = "row" + i;<a name="line.283"></a>
-<span class="sourceLineNo">284</span> Delete del = new Delete(Bytes.toBytes(rowKey));<a name="line.284"></a>
-<span class="sourceLineNo">285</span> list.add(del);<a name="line.285"></a>
-<span class="sourceLineNo">286</span> }<a name="line.286"></a>
-<span class="sourceLineNo">287</span> ht1Source.delete(list);<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span> for (int i = 0; i < NB_ROWS_IN_BATCH; i++) {<a name="line.289"></a>
+<span class="sourceLineNo">218</span> /**<a name="line.218"></a>
+<span class="sourceLineNo">219</span> * set M-S : Master: utility1 Slave1: utility2<a name="line.219"></a>
+<span class="sourceLineNo">220</span> */<a name="line.220"></a>
+<span class="sourceLineNo">221</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.221"></a>
+<span class="sourceLineNo">222</span> rpc.setClusterKey(utility2.getClusterKey());<a name="line.222"></a>
+<span class="sourceLineNo">223</span> admin1.addPeer("1", rpc, null);<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin1.close();<a name="line.225"></a>
+<span class="sourceLineNo">226</span> admin2.close();<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> private void putAndReplicateRows() throws Exception {<a name="line.229"></a>
+<span class="sourceLineNo">230</span> LOG.debug("putAndReplicateRows");<a name="line.230"></a>
+<span class="sourceLineNo">231</span> // add rows to Master cluster,<a name="line.231"></a>
+<span class="sourceLineNo">232</span> Put p;<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span> // 100 + 1 row to t1_syncup<a name="line.234"></a>
+<span class="sourceLineNo">235</span> for (int i = 0; i < NB_ROWS_IN_BATCH; i++) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> p = new Put(Bytes.toBytes("row" + i));<a name="line.236"></a>
+<span class="sourceLineNo">237</span> p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.237"></a>
+<span class="sourceLineNo">238</span> ht1Source.put(p);<a name="line.238"></a>
+<span class="sourceLineNo">239</span> }<a name="line.239"></a>
+<span class="sourceLineNo">240</span> p = new Put(Bytes.toBytes("row" + 9999));<a name="line.240"></a>
+<span class="sourceLineNo">241</span> p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9999));<a name="line.241"></a>
+<span class="sourceLineNo">242</span> ht1Source.put(p);<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span> // 200 + 1 row to t2_syncup<a name="line.244"></a>
+<span class="sourceLineNo">245</span> for (int i = 0; i < NB_ROWS_IN_BATCH * 2; i++) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span> p = new Put(Bytes.toBytes("row" + i));<a name="line.246"></a>
+<span class="sourceLineNo">247</span> p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.247"></a>
+<span class="sourceLineNo">248</span> ht2Source.put(p);<a name="line.248"></a>
+<span class="sourceLineNo">249</span> }<a name="line.249"></a>
+<span class="sourceLineNo">250</span> p = new Put(Bytes.toBytes("row" + 9999));<a name="line.250"></a>
+<span class="sourceLineNo">251</span> p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9999));<a name="line.251"></a>
+<span class="sourceLineNo">252</span> ht2Source.put(p);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span> // ensure replication completed<a name="line.254"></a>
+<span class="sourceLineNo">255</span> Thread.sleep(SLEEP_TIME);<a name="line.255"></a>
+<span class="sourceLineNo">256</span> int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.256"></a>
+<span class="sourceLineNo">257</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span> int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.258"></a>
+<span class="sourceLineNo">259</span> if (i==NB_RETRIES-1) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> assertEquals("t1_syncup has 101 rows on source, and 100 on slave1", rowCount_ht1Source - 1,<a name="line.260"></a>
+<span class="sourceLineNo">261</span> rowCount_ht1TargetAtPeer1);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> }<a name="line.262"></a>
+<span class="sourceLineNo">263</span> if (rowCount_ht1Source - 1 == rowCount_ht1TargetAtPeer1) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span> break;<a name="line.264"></a>
+<span class="sourceLineNo">265</span> }<a name="line.265"></a>
+<span class="sourceLineNo">266</span> Thread.sleep(SLEEP_TIME);<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> int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.269"></a>
+<span class="sourceLineNo">270</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span> int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.271"></a>
+<span class="sourceLineNo">272</span> if (i==NB_RETRIES-1) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span> assertEquals("t2_syncup has 201 rows on source, and 200 on slave1", rowCount_ht2Source - 1,<a name="line.273"></a>
+<span class="sourceLineNo">274</span> rowCount_ht2TargetAtPeer1);<a name="line.274"></a>
+<span class="sourceLineNo">275</span> }<a name="line.275"></a>
+<span class="sourceLineNo">276</span> if (rowCount_ht2Source - 1 == rowCount_ht2TargetAtPeer1) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> break;<a name="line.277"></a>
+<span class="sourceLineNo">278</span> }<a name="line.278"></a>
+<span class="sourceLineNo">279</span> Thread.sleep(SLEEP_TIME);<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><a name="line.282"></a>
+<span class="sourceLineNo">283</span> private void mimicSyncUpAfterDelete() throws Exception {<a name="line.283"></a>
+<span class="sourceLineNo">284</span> LOG.debug("mimicSyncUpAfterDelete");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> utility2.shutdownMiniHBaseCluster();<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span> List<Delete> list = new ArrayList<>();<a name="line.287"></a>
+<span class="sourceLineNo">288</span> // delete half of the rows<a name="line.288"></a>
+<span class="sourceLineNo">289</span> for (int i = 0; i < NB_ROWS_IN_BATCH / 2; i++) {<a name="line.289"></a>
<span class="sourceLineNo">290</span> String rowKey = "row" + i;<a name="line.290"></a>
<span class="sourceLineNo">291</span> Delete del = new Delete(Bytes.toBytes(rowKey));<a name="line.291"></a>
<span class="sourceLineNo">292</span> list.add(del);<a name="line.292"></a>
<span class="sourceLineNo">293</span> }<a name="line.293"></a>
-<span class="sourceLineNo">294</span> ht2Source.delete(list);<a name="line.294"></a>
+<span class="sourceLineNo">294</span> ht1Source.delete(list);<a name="line.294"></a>
<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span> int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> assertEquals("t1_syncup has 51 rows on source, after remove 50 of the replicated colfam", 51,<a name="line.297"></a>
-<span class="sourceLineNo">298</span> rowCount_ht1Source);<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span> int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.300"></a>
-<span class="sourceLineNo">301</span> assertEquals("t2_syncup has 101 rows on source, after remove 100 of the replicated colfam",<a name="line.301"></a>
-<span class="sourceLineNo">302</span> 101, rowCount_ht2Source);<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span> utility1.shutdownMiniHBaseCluster();<a name="line.304"></a>
-<span class="sourceLineNo">305</span> utility2.restartHBaseCluster(1);<a name="line.305"></a>
+<span class="sourceLineNo">296</span> for (int i = 0; i < NB_ROWS_IN_BATCH; i++) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span> String rowKey = "row" + i;<a name="line.297"></a>
+<span class="sourceLineNo">298</span> Delete del = new Delete(Bytes.toBytes(rowKey));<a name="line.298"></a>
+<span class="sourceLineNo">299</span> list.add(del);<a name="line.299"></a>
+<span class="sourceLineNo">300</span> }<a name="line.300"></a>
+<span class="sourceLineNo">301</span> ht2Source.delete(list);<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span> int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.303"></a>
+<span class="sourceLineNo">304</span> assertEquals("t1_syncup has 51 rows on source, after remove 50 of the replicated colfam", 51,<a name="line.304"></a>
+<span class="sourceLineNo">305</span> rowCount_ht1Source);<a name="line.305"></a>
<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span> Thread.sleep(SLEEP_TIME);<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span> // before sync up<a name="line.309"></a>
-<span class="sourceLineNo">310</span> int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.310"></a>
-<span class="sourceLineNo">311</span> int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.311"></a>
-<span class="sourceLineNo">312</span> assertEquals("@Peer1 t1_syncup should still have 100 rows", 100, rowCount_ht1TargetAtPeer1);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> assertEquals("@Peer1 t2_syncup should still have 200 rows", 200, rowCount_ht2TargetAtPeer1);<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span> // After sync up<a name="line.315"></a>
-<span class="sourceLineNo">316</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span> syncUp(utility1);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> if (i == NB_RETRIES - 1) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span> if (rowCount_ht1TargetAtPeer1 != 50 || rowCount_ht2TargetAtPeer1 != 100) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span> // syncUP still failed. Let's look at the source in case anything wrong there<a name="line.322"></a>
-<span class="sourceLineNo">323</span> utility1.restartHBaseCluster(1);<a name="line.323"></a>
-<span class="sourceLineNo">324</span> rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.324"></a>
-<span class="sourceLineNo">325</span> LOG.debug("t1_syncup should have 51 rows at source, and it is " + rowCount_ht1Source);<a name="line.325"></a>
-<span class="sourceLineNo">326</span> rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.326"></a>
-<span class="sourceLineNo">327</span> LOG.debug("t2_syncup should have 101 rows at source, and it is " + rowCount_ht2Source);<a name="line.327"></a>
-<span class="sourceLineNo">328</span> }<a name="line.328"></a>
-<span class="sourceLineNo">329</span> assertEquals("@Peer1 t1_syncup should be sync up and have 50 rows", 50,<a name="line.329"></a>
-<span class="sourceLineNo">330</span> rowCount_ht1TargetAtPeer1);<a name="line.330"></a>
-<span class="sourceLineNo">331</span> assertEquals("@Peer1 t2_syncup should be sync up and have 100 rows", 100,<a name="line.331"></a>
-<span class="sourceLineNo">332</span> rowCount_ht2TargetAtPeer1);<a name="line.332"></a>
-<span class="sourceLineNo">333</span> }<a name="line.333"></a>
-<span class="sourceLineNo">334</span> if (rowCount_ht1TargetAtPeer1 == 50 && rowCount_ht2TargetAtPeer1 == 100) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span> LOG.info("SyncUpAfterDelete succeeded at retry = " + i);<a name="line.335"></a>
-<span class="sourceLineNo">336</span> break;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> } else {<a name="line.337"></a>
-<span class="sourceLineNo">338</span> LOG.debug("SyncUpAfterDelete failed at retry = " + i + ", with rowCount_ht1TargetPeer1 ="<a name="line.338"></a>
-<span class="sourceLineNo">339</span> + rowCount_ht1TargetAtPeer1 + " and rowCount_ht2TargetAtPeer1 ="<a name="line.339"></a>
-<span class="sourceLineNo">340</span> + rowCount_ht2TargetAtPeer1);<a name="line.340"></a>
-<span class="sourceLineNo">341</span> }<a name="line.341"></a>
-<span class="sourceLineNo">342</span> Thread.sleep(SLEEP_TIME);<a name="line.342"></a>
-<span class="sourceLineNo">343</span> }<a name="line.343"></a>
-<span class="sourceLineNo">344</span> }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span> private void mimicSyncUpAfterPut() throws Exception {<a name="line.346"></a>
-<span class="sourceLineNo">347</span> LOG.debug("mimicSyncUpAfterPut");<a name="line.347"></a>
-<span class="sourceLineNo">348</span> utility1.restartHBaseCluster(1);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> utility2.shutdownMiniHBaseCluster();<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span> Put p;<a name="line.351"></a>
-<span class="sourceLineNo">352</span> // another 100 + 1 row to t1_syncup<a name="line.352"></a>
-<span class="sourceLineNo">353</span> // we should see 100 + 2 rows now<a name="line.353"></a>
-<span class="sourceLineNo">354</span> for (int i = 0; i < NB_ROWS_IN_BATCH; i++) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span> p = new Put(Bytes.toBytes("row" + i));<a name="line.355"></a>
-<span class="sourceLineNo">356</span> p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.356"></a>
-<span class="sourceLineNo">357</span> ht1Source.put(p);<a name="line.357"></a>
-<span class="sourceLineNo">358</span> }<a name="line.358"></a>
-<span class="sourceLineNo">359</span> p = new Put(Bytes.toBytes("row" + 9998));<a name="line.359"></a>
-<span class="sourceLineNo">360</span> p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9998));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> ht1Source.put(p);<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> // another 200 + 1 row to t1_syncup<a name="line.363"></a>
-<span class="sourceLineNo">364</span> // we should see 200 + 2 rows now<a name="line.364"></a>
-<span class="sourceLineNo">365</span> for (int i = 0; i < NB_ROWS_IN_BATCH * 2; i++) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span> p = new Put(Bytes.toBytes("row" + i));<a name="line.366"></a>
-<span class="sourceLineNo">367</span> p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.367"></a>
-<span class="sourceLineNo">368</span> ht2Source.put(p);<a name="line.368"></a>
-<span class="sourceLineNo">369</span> }<a name="line.369"></a>
-<span class="sourceLineNo">370</span> p = new Put(Bytes.toBytes("row" + 9998));<a name="line.370"></a>
-<span class="sourceLineNo">371</span> p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9998));<a name="line.371"></a>
-<span class="sourceLineNo">372</span> ht2Source.put(p);<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span> int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.374"></a>
-<span class="sourceLineNo">375</span> assertEquals("t1_syncup has 102 rows on source", 102, rowCount_ht1Source);<a name="line.375"></a>
-<span class="sourceLineNo">376</span> int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.376"></a>
-<span class="sourceLineNo">377</span> assertEquals("t2_syncup has 202 rows on source", 202, rowCount_ht2Source);<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span> utility1.shutdownMiniHBaseCluster();<a name="line.379"></a>
-<span class="sourceLineNo">380</span> utility2.restartHBaseCluster(1);<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span> Thread.sleep(SLEEP_TIME);<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span> // before sync up<a name="line.384"></a>
-<span class="sourceLineNo">385</span> int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.385"></a>
-<span class="sourceLineNo">386</span> int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.386"></a>
-<span class="sourceLineNo">387</span> assertEquals("@Peer1 t1_syncup should be NOT sync up and have 50 rows", 50,<a name="line.387"></a>
-<span class="sourceLineNo">388</span> rowCount_ht1TargetAtPeer1);<a name="line.388"></a>
-<span class="sourceLineNo">389</span> assertEquals("@Peer1 t2_syncup should be NOT sync up and have 100 rows", 100,<a name="line.389"></a>
-<span class="sourceLineNo">390</span> rowCount_ht2TargetAtPeer1);<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span> // after syun up<a name="line.392"></a>
-<span class="sourceLineNo">393</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.393"></a>
-<span class="sourceLineNo">394</span> syncUp(utility1);<a name="line.394"></a>
-<span class="sourceLineNo">395</span> rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.395"></a>
-<span class="sourceLineNo">396</span> rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.396"></a>
-<span class="sourceLineNo">397</span> if (i == NB_RETRIES - 1) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span> if (rowCount_ht1TargetAtPeer1 != 100 || rowCount_ht2TargetAtPeer1 != 200) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span> // syncUP still failed. Let's look at the source in case anything wrong there<a name="line.399"></a>
-<span class="sourceLineNo">400</span> utility1.restartHBaseCluster(1);<a name="line.400"></a>
-<span class="sourceLineNo">401</span> rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.401"></a>
-<span class="sourceLineNo">402</span> LOG.debug("t1_syncup should have 102 rows at source, and it is " + rowCount_ht1Source);<a name="line.402"></a>
-<span class="sourceLineNo">403</span> rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.403"></a>
-<span class="sourceLineNo">404</span> LOG.debug("t2_syncup should have 202 rows at source, and it is " + rowCount_ht2Source);<a name="line.404"></a>
-<span class="sourceLineNo">405</span> }<a name="line.405"></a>
-<span class="sourceLineNo">406</span> assertEquals("@Peer1 t1_syncup should be sync up and have 100 rows", 100,<a name="line.406"></a>
-<span class="sourceLineNo">407</span> rowCount_ht1TargetAtPeer1);<a name="line.407"></a>
-<span class="sourceLineNo">408</span> assertEquals("@Peer1 t2_syncup should be sync up and have 200 rows", 200,<a name="line.408"></a>
-<span class="sourceLineNo">409</span> rowCount_ht2TargetAtPeer1);<a name="line.409"></a>
-<span class="sourceLineNo">410</span> }<a name="line.410"></a>
-<span class="sourceLineNo">411</span> if (rowCount_ht1TargetAtPeer1 == 100 && rowCount_ht2TargetAtPeer1 == 200) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span> LOG.info("SyncUpAfterPut succeeded at retry = " + i);<a name="line.412"></a>
-<span class="sourceLineNo">413</span> break;<a name="line.413"></a>
-<span class="sourceLineNo">414</span> } else {<a name="line.414"></a>
-<span class="sourceLineNo">415</span> LOG.debug("SyncUpAfterPut failed at retry = " + i + ", with rowCount_ht1TargetPeer1 ="<a name="line.415"></a>
-<span class="sourceLineNo">416</span> + rowCount_ht1TargetAtPeer1 + " and rowCount_ht2TargetAtPeer1 ="<a name="line.416"></a>
-<span class="sourceLineNo">417</span> + rowCount_ht2TargetAtPeer1);<a name="line.417"></a>
-<span class="sourceLineNo">418</span> }<a name="line.418"></a>
-<span class="sourceLineNo">419</span> Thread.sleep(SLEEP_TIME);<a name="line.419"></a>
-<span class="sourceLineNo">420</span> }<a name="line.420"></a>
-<span class="sourceLineNo">421</span> }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span> protected void syncUp(HBaseTestingUtility ut) throws Exception {<a name="line.423"></a>
-<span class="sourceLineNo">424</span> ToolRunner.run(ut.getConfiguration(), new ReplicationSyncUp(), new String[0]);<a name="line.424"></a>
-<span class="sourceLineNo">425</span> }<a name="line.425"></a>
-<span class="sourceLineNo">426</span>}<a name="line.426"></a>
+<span class="sourceLineNo">307</span> int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.307"></a>
+<span class="sourceLineNo">308</span> assertEquals("t2_syncup has 101 rows on source, after remove 100 of the replicated colfam",<a name="line.308"></a>
+<span class="sourceLineNo">309</span> 101, rowCount_ht2Source);<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span> utility1.shutdownMiniHBaseCluster();<a name="line.311"></a>
+<span class="sourceLineNo">312</span> utility2.restartHBaseCluster(1);<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span> Thread.sleep(SLEEP_TIME);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> // before sync up<a name="line.316"></a>
+<span class="sourceLineNo">317</span> int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.318"></a>
+<span class="sourceLineNo">319</span> assertEquals("@Peer1 t1_syncup should still have 100 rows", 100, rowCount_ht1TargetAtPeer1);<a name="line.319"></a>
+<span class="sourceLineNo">320</span> assertEquals("@Peer1 t2_syncup should still have 200 rows", 200, rowCount_ht2TargetAtPeer1);<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span> // After sync up<a name="line.322"></a>
+<span class="sourceLineNo">323</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> syncUp(utility1);<a name="line.324"></a>
+<span class="sourceLineNo">325</span> rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.325"></a>
+<span class="sourceLineNo">326</span> rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.326"></a>
+<span class="sourceLineNo">327</span> if (i == NB_RETRIES - 1) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span> if (rowCount_ht1TargetAtPeer1 != 50 || rowCount_ht2TargetAtPeer1 != 100) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span> // syncUP still failed. Let's look at the source in case anything wrong there<a name="line.329"></a>
+<span class="sourceLineNo">330</span> utility1.restartHBaseCluster(1);<a name="line.330"></a>
+<span class="sourceLineNo">331</span> rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.331"></a>
+<span class="sourceLineNo">332</span> LOG.debug("t1_syncup should have 51 rows at source, and it is " + rowCount_ht1Source);<a name="line.332"></a>
+<span class="sourceLineNo">333</span> rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> LOG.debug("t2_syncup should have 101 rows at source, and it is " + rowCount_ht2Source);<a name="line.334"></a>
+<span class="sourceLineNo">335</span> }<a name="line.335"></a>
+<span class="sourceLineNo">336</span> assertEquals("@Peer1 t1_syncup should be sync up and have 50 rows", 50,<a name="line.336"></a>
+<span class="sourceLineNo">337</span> rowCount_ht1TargetAtPeer1);<a name="line.337"></a>
+<span class="sourceLineNo">338</span> assertEquals("@Peer1 t2_syncup should be sync up and have 100 rows", 100,<a name="line.338"></a>
+<span class="sourceLineNo">339</span> rowCount_ht2TargetAtPeer1);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> }<a name="line.340"></a>
+<span class="sourceLineNo">341</span> if (rowCount_ht1TargetAtPeer1 == 50 && rowCount_ht2TargetAtPeer1 == 100) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span> LOG.info("SyncUpAfterDelete succeeded at retry = " + i);<a name="line.342"></a>
+<span class="sourceLineNo">343</span> break;<a name="line.343"></a>
+<span class="sourceLineNo">344</span> } else {<a name="line.344"></a>
+<span class="sourceLineNo">345</span> LOG.debug("SyncUpAfterDelete failed at retry = " + i + ", with rowCount_ht1TargetPeer1 ="<a name="line.345"></a>
+<span class="sourceLineNo">346</span> + rowCount_ht1TargetAtPeer1 + " and rowCount_ht2TargetAtPeer1 ="<a name="line.346"></a>
+<span class="sourceLineNo">347</span> + rowCount_ht2TargetAtPeer1);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> Thread.sleep(SLEEP_TIME);<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><a name="line.352"></a>
+<span class="sourceLineNo">353</span> private void mimicSyncUpAfterPut() throws Exception {<a name="line.353"></a>
+<span class="sourceLineNo">354</span> LOG.debug("mimicSyncUpAfterPut");<a name="line.354"></a>
+<span class="sourceLineNo">355</span> utility1.restartHBaseCluster(1);<a name="line.355"></a>
+<span class="sourceLineNo">356</span> utility2.shutdownMiniHBaseCluster();<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> Put p;<a name="line.358"></a>
+<span class="sourceLineNo">359</span> // another 100 + 1 row to t1_syncup<a name="line.359"></a>
+<span class="sourceLineNo">360</span> // we should see 100 + 2 rows now<a name="line.360"></a>
+<span class="sourceLineNo">361</span> for (int i = 0; i < NB_ROWS_IN_BATCH; i++) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span> p = new Put(Bytes.toBytes("row" + i));<a name="line.362"></a>
+<span class="sourceLineNo">363</span> p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.363"></a>
+<span class="sourceLineNo">364</span> ht1Source.put(p);<a name="line.364"></a>
+<span class="sourceLineNo">365</span> }<a name="line.365"></a>
+<span class="sourceLineNo">366</span> p = new Put(Bytes.toBytes("row" + 9998));<a name="line.366"></a>
+<span class="sourceLineNo">367</span> p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9998));<a name="line.367"></a>
+<span class="sourceLineNo">368</span> ht1Source.put(p);<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> // another 200 + 1 row to t1_syncup<a name="line.370"></a>
+<span class="sourceLineNo">371</span> // we should see 200 + 2 rows now<a name="line.371"></a>
+<span class="sourceLineNo">372</span> for (int i = 0; i < NB_ROWS_IN_BATCH * 2; i++) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span> p = new Put(Bytes.toBytes("row" + i));<a name="line.373"></a>
+<span class="sourceLineNo">374</span> p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.374"></a>
+<span class="sourceLineNo">375</span> ht2Source.put(p);<a name="line.375"></a>
+<span class="sourceLineNo">376</span> }<a name="line.376"></a>
+<span class="sourceLineNo">377</span> p = new Put(Bytes.toBytes("row" + 9998));<a name="line.377"></a>
+<span class="sourceLineNo">378</span> p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9998));<a name="line.378"></a>
+<span class="sourceLineNo">379</span> ht2Source.put(p);<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span> int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.381"></a>
+<span class="sourceLineNo">382</span> assertEquals("t1_syncup has 102 rows on source", 102, rowCount_ht1Source);<a name="line.382"></a>
+<span class="sourceLineNo">383</span> int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> assertEquals("t2_syncup has 202 rows on source", 202, rowCount_ht2Source);<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span> utility1.shutdownMiniHBaseCluster();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> utility2.restartHBaseCluster(1);<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span> Thread.sleep(SLEEP_TIME);<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span> // before sync up<a name="line.391"></a>
+<span class="sourceLineNo">392</span> int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.392"></a>
+<span class="sourceLineNo">393</span> int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.393"></a>
+<span class="sourceLineNo">394</span> assertEquals("@Peer1 t1_syncup should be NOT sync up and have 50 rows", 50,<a name="line.394"></a>
+<span class="sourceLineNo">395</span> rowCount_ht1TargetAtPeer1);<a name="line.395"></a>
+<span class="sourceLineNo">396</span> assertEquals("@Peer1 t2_syncup should be NOT sync up and have 100 rows", 100,<a name="line.396"></a>
+<span class="sourceLineNo">397</span> rowCount_ht2TargetAtPeer1);<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span> // after syun up<a name="line.399"></a>
+<span class="sourceLineNo">400</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span> syncUp(utility1);<a name="line.401"></a>
+<span class="sourceLineNo">402</span> rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.402"></a>
+<span class="sourceLineNo">403</span> rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.403"></a>
+<span class="sourceLineNo">404</span> if (i == NB_RETRIES - 1) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span> if (rowCount_ht1TargetAtPeer1 != 100 || rowCount_ht2TargetAtPeer1 != 200) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span> // syncUP still failed. Let's look at the source in case anything wrong there<a name="line.406"></a>
+<span class="sourceLineNo">407</span> utility1.restartHBaseCluster(1);<a name="line.407"></a>
+<span class="sourceLineNo">408</span> rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.408"></a>
+<span class="sourceLineNo">409</span> LOG.debug("t1_syncup should have 102 rows at source, and it is " + rowCount_ht1Source);<a name="line.409"></a>
+<span class="sourceLineNo">410</span> rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.410"></a>
+<span class="sourceLineNo">411</span> LOG.debug("t2_syncup should have 202 rows at source, and it is " + rowCount_ht2Source);<a name="line.411"></a>
+<span class="sourceLineNo">412</span> }<a name="line.412"></a>
+<span class="sourceLineNo">413</span> assertEquals("@Peer1 t1_syncup should be sync up and have 100 rows", 100,<a name="line.413"></a>
+<span class="sourceLineNo">414</span> rowCount_ht1TargetAtPeer1);<a name="line.414"></a>
+<span class="sourceLineNo">415</span> assertEquals("@Peer1 t2_syncup should be sync up and have 200 rows", 200,<a name="line.415"></a>
+<span class="sourceLineNo">416</span> rowCount_ht2TargetAtPeer1);<a name="line.416"></a>
+<span class="sourceLineNo">417</span> }<a name="line.417"></a>
+<span class="sourceLineNo">418</span> if (rowCount_ht1TargetAtPeer1 == 100 && rowCount_ht2TargetAtPeer1 == 200) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span> LOG.info("SyncUpAfterPut succeeded at retry = " + i);<a name="line.419"></a>
+<span class="sourceLineNo">420</span> break;<a name="line.420"></a>
+<span class="sourceLineNo">421</span> } else {<a name="line.421"></a>
+<span class="sourceLineNo">422</span> LOG.debug("SyncUpAfterPut failed at retry = " + i + ", with rowCount_ht1TargetPeer1 ="<a name="line.422"></a>
+<span class="sourceLineNo">423</span> + rowCount_ht1TargetAtPeer1 + " and rowCount_ht2TargetAtPeer1 ="<a name="line.423"></a>
+<span class="sourceLineNo">424</span> + rowCount_ht2TargetAtPeer1);<a name="line.424"></a>
+<span class="sourceLineNo">425</span> }<a name="line.425"></a>
+<span class="sourceLineNo">426</span> Thread.sleep(SLEEP_TIME);<a name="line.426"></a>
+<span class="sourceLineNo">427</span> }<a name="line.427"></a>
+<span class="sourceLineNo">428</span> }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span> protected void syncUp(HBaseTestingUtility ut) throws Exception {<a name="line.430"></a>
+<span class="sourceLineNo">431</span> ToolRunner.run(ut.getConfiguration(), new ReplicationSyncUp(), new String[0]);<a name="line.431"></a>
+<span class="sourceLineNo">432</span> }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>}<a name="line.433"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
index 4ac2a98..a1a3896 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
@@ -160,30 +160,32 @@
<span class="sourceLineNo">152</span> public void testIsSameHdfs() throws IOException {<a name="line.152"></a>
<span class="sourceLineNo">153</span> String hadoopVersion = org.apache.hadoop.util.VersionInfo.getVersion();<a name="line.153"></a>
<span class="sourceLineNo">154</span> LOG.info("hadoop version is: " + hadoopVersion);<a name="line.154"></a>
-<span class="sourceLineNo">155</span> boolean isHadoop3 = hadoopVersion.startsWith("3.");<a name="line.155"></a>
-<span class="sourceLineNo">156</span> if (isHadoop3) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> // Hadoop 3.0.0 alpha1+ change default nn port to 9820. See HDFS-9427<a name="line.157"></a>
-<span class="sourceLineNo">158</span> testIsSameHdfs(9820);<a name="line.158"></a>
-<span class="sourceLineNo">159</span> } else {<a name="line.159"></a>
-<span class="sourceLineNo">160</span> // pre hadoop 3.0.0 defaults to port 8020<a name="line.160"></a>
-<span class="sourceLineNo">161</span> testIsSameHdfs(8020);<a name="line.161"></a>
-<span class="sourceLineNo">162</span> }<a name="line.162"></a>
-<span class="sourceLineNo">163</span> }<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> /**<a name="line.165"></a>
-<span class="sourceLineNo">166</span> * Version of DFS that has HDFS-4525 in it.<a name="line.166"></a>
-<span class="sourceLineNo">167</span> */<a name="line.167"></a>
-<span class="sourceLineNo">168</span> static class IsFileClosedDistributedFileSystem extends DistributedFileSystem {<a name="line.168"></a>
-<span class="sourceLineNo">169</span> /**<a name="line.169"></a>
-<span class="sourceLineNo">170</span> * Close status of a file. Copied over from HDFS-4525<a name="line.170"></a>
-<span class="sourceLineNo">171</span> * @return true if file is already closed<a name="line.171"></a>
-<span class="sourceLineNo">172</span> **/<a name="line.172"></a>
-<span class="sourceLineNo">173</span> @Override<a name="line.173"></a>
-<span class="sourceLineNo">174</span> public boolean isFileClosed(Path f) throws IOException{<a name="line.174"></a>
-<span class="sourceLineNo">175</span> return false;<a name="line.175"></a>
-<span class="sourceLineNo">176</span> }<a name="line.176"></a>
-<span class="sourceLineNo">177</span> }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>}<a name="line.178"></a>
+<span class="sourceLineNo">155</span> boolean isHadoop3_0_0 = hadoopVersion.startsWith("3.0.0");<a name="line.155"></a>
+<span class="sourceLineNo">156</span> if (isHadoop3_0_0) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span> // Hadoop 3.0.0 alpha1+ ~ 3.0.0 GA changed default nn port to 9820.<a name="line.157"></a>
+<span class="sourceLineNo">158</span> // See HDFS-9427<a name="line.158"></a>
+<span class="sourceLineNo">159</span> testIsSameHdfs(9820);<a name="line.159"></a>
+<span class="sourceLineNo">160</span> } else {<a name="line.160"></a>
+<span class="sourceLineNo">161</span> // pre hadoop 3.0.0 defaults to port 8020<a name="line.161"></a>
+<span class="sourceLineNo">162</span> // Hadoop 3.0.1 changed it back to port 8020. See HDFS-12990<a name="line.162"></a>
+<span class="sourceLineNo">163</span> testIsSameHdfs(8020);<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><a name="line.166"></a>
+<span class="sourceLineNo">167</span> /**<a name="line.167"></a>
+<span class="sourceLineNo">168</span> * Version of DFS that has HDFS-4525 in it.<a name="line.168"></a>
+<span class="sourceLineNo">169</span> */<a name="line.169"></a>
+<span class="sourceLineNo">170</span> static class IsFileClosedDistributedFileSystem extends DistributedFileSystem {<a name="line.170"></a>
+<span class="sourceLineNo">171</span> /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span> * Close status of a file. Copied over from HDFS-4525<a name="line.172"></a>
+<span class="sourceLineNo">173</span> * @return true if file is already closed<a name="line.173"></a>
+<span class="sourceLineNo">174</span> **/<a name="line.174"></a>
+<span class="sourceLineNo">175</span> @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span> public boolean isFileClosed(Path f) throws IOException{<a name="line.176"></a>
+<span class="sourceLineNo">177</span> return false;<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span> }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>}<a name="line.180"></a>
[28/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
index 24baa0b..e842bff 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
@@ -103,93 +103,47 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultOperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int numWrites,
- int numReads,
- int numScans)</code> </td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">OperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int numWrites,
- int numReads,
- int numScans)</code>
-<div class="block">Checks if it is possible to execute the specified operation.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">NoopOperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/NoopOperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int numWrites,
- int numReads,
- int numScans)</code> </td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">TimeBasedLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long writeSize,
- long readSize)</code> </td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">QuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long estimateWriteSize,
- long estimateReadSize)</code>
-<div class="block">Checks if it is possible to execute the specified operation.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">NoopQuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long estimateWriteSize,
- long estimateReadSize)</code> </td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-int-int-int-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a> region,
- int numWrites,
- int numReads,
- int numScans)</code>
-<div class="block">Check the quota for the current (rpc-context) user.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-java.util.List-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a> region,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action> actions)</code>
-<div class="block">Check the quota for the current (rpc-context) user.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-org.apache.hadoop.hbase.quotas.OperationQuota.OperationType-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a> region,
- <a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas">OperationQuota.OperationType</a> type)</code>
-<div class="block">Check the quota for the current (rpc-context) user.</div>
-</td>
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code> </td>
-</tr>
-<tr class="altColor">
<td class="colFirst"><code>private static void</code></td>
<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type,
- long waitInterval)</code> </td>
+ long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</tbody>
</table>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-frame.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-frame.html
index 9fcb45b..e15595d 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-frame.html
@@ -89,6 +89,7 @@
<li><a href="OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">OperationQuota.OperationType</a></li>
<li><a href="QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaScope</a></li>
<li><a href="QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaType</a></li>
+<li><a href="RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException.Type</a></li>
<li><a href="SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">SpaceViolationPolicy</a></li>
<li><a href="ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottleType</a></li>
<li><a href="ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottlingException.Type</a></li>
@@ -97,6 +98,7 @@
<ul title="Exceptions">
<li><a href="FileArchiverNotifierImpl.QuotaSnapshotSizeSerializationException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">FileArchiverNotifierImpl.QuotaSnapshotSizeSerializationException</a></li>
<li><a href="QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaExceededException</a></li>
+<li><a href="RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException</a></li>
<li><a href="SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">SpaceLimitingException</a></li>
<li><a href="ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottlingException</a></li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-summary.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-summary.html
index d6d3cc1..f6308f3 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-summary.html
@@ -507,18 +507,22 @@
</td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></td>
<td class="colLast">
<div class="block">Enumeration that represents the action HBase will take when a space quota is violated.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottleType</a></td>
<td class="colLast">
<div class="block">Describe the Throttle Type.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></td>
<td class="colLast"> </td>
</tr>
@@ -546,15 +550,21 @@
</td>
</tr>
<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></td>
+<td class="colLast">
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></td>
<td class="colLast">
<div class="block">An Exception that is thrown when a space quota is in violation.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></td>
-<td class="colLast">
-<div class="block">Describe the throttling result.</div>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
</td>
</tr>
</tbody>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 65a2ef4..4b5274d 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -171,6 +171,7 @@
</li>
</ul>
</li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a></li>
</ul>
</li>
</ul>
@@ -228,11 +229,12 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-use.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-use.html
index 6dde91a..fd2ed5c 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-use.html
@@ -437,6 +437,14 @@
</td>
</tr>
<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html#org.apache.hadoop.hbase.quotas">RpcThrottlingException</a>
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> </td>
+</tr>
+<tr class="rowColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/SpaceLimitingException.html#org.apache.hadoop.hbase.quotas">SpaceLimitingException</a>
<div class="block">An Exception that is thrown when a space quota is in violation.</div>
</td>
@@ -498,11 +506,15 @@
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html#org.apache.hadoop.hbase.quotas">ThrottlingException</a>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
</td>
</tr>
<tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> </td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/TimeBasedLimiter.html#org.apache.hadoop.hbase.quotas">TimeBasedLimiter</a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 c6caf11..8a9d4c2 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -704,20 +704,20 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index 858ccf6..b377318 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,9 +130,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 5a7e325..d9fa142 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -137,9 +137,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index 8e41b8e..41c2191 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -198,9 +198,9 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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 debc4a7..90aa9ce 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -532,14 +532,14 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a><T>)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a><T>)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index 9c4a44f..5e84ab8 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -3903,6 +3903,7 @@
<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RegionOfflineException.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionOfflineException</span></a></li>
</ul>
</li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a></li>
<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashException.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerCrashException</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServiceNotRunningException.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">ServiceNotRunningException</span></a></li>
<li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">StoppedRpcClientException</span></a></li>
@@ -5182,6 +5183,7 @@
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/devapidocs/serialized-form.html b/devapidocs/serialized-form.html
index fd1c018..d29bc1a 100644
--- a/devapidocs/serialized-form.html
+++ b/devapidocs/serialized-form.html
@@ -1383,6 +1383,26 @@
</a>
<h3>Class <a href="org/apache/hadoop/hbase/quotas/QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.QuotaExceededException</a> extends <a href="org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a> implements Serializable</h3>
</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas.RpcThrottlingException">
+<!-- -->
+</a>
+<h3>Class <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.RpcThrottlingException</a> extends <a href="org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitInterval</h4>
+<pre>long waitInterval</pre>
+</li>
+<li class="blockListLast">
+<h4>type</h4>
+<pre><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
<li class="blockList"><a name="org.apache.hadoop.hbase.quotas.SpaceLimitingException">
<!-- -->
</a>
@@ -1418,10 +1438,12 @@
<li class="blockList">
<h4>waitInterval</h4>
<pre>long waitInterval</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
<li class="blockListLast">
<h4>type</h4>
<pre><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index bb27134..da85657 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
<span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
<span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
<span class="sourceLineNo">010</span> public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span> public static final String revision = "773aff90fdf9edf4687b373d1c7ba859d166a437";<a name="line.11"></a>
+<span class="sourceLineNo">011</span> public static final String revision = "42d5447cfbc593becfc26684e03f482eb3a0fc49";<a name="line.11"></a>
<span class="sourceLineNo">012</span> public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span> public static final String date = "Mon Apr 16 14:39:11 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span> public static final String date = "Tue Apr 17 14:39:15 UTC 2018";<a name="line.13"></a>
<span class="sourceLineNo">014</span> public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span> public static final String srcChecksum = "83e5500271237f8b8d44991e5fb13ecd";<a name="line.15"></a>
+<span class="sourceLineNo">015</span> public static final String srcChecksum = "7216e99e4e2f243f8ca1e9d09be1a120";<a name="line.15"></a>
<span class="sourceLineNo">016</span>}<a name="line.16"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/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
index 5895455..412e95e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
@@ -47,7 +47,7 @@
<span class="sourceLineNo">039</span>import org.apache.yetus.audience.InterfaceStability;<a name="line.39"></a>
<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.ipc.CallTimeoutException;<a name="line.40"></a>
<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.ipc.FailedServerException;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.42"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.42"></a>
<span class="sourceLineNo">043</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.43"></a>
<span class="sourceLineNo">044</span><a name="line.44"></a>
<span class="sourceLineNo">045</span>@InterfaceAudience.Private<a name="line.45"></a>
@@ -68,7 +68,7 @@
<span class="sourceLineNo">060</span><a name="line.60"></a>
<span class="sourceLineNo">061</span> public static boolean isSpecialException(Throwable cur) {<a name="line.61"></a>
<span class="sourceLineNo">062</span> return (cur instanceof RegionMovedException || cur instanceof RegionOpeningException<a name="line.62"></a>
-<span class="sourceLineNo">063</span> || cur instanceof RegionTooBusyException || cur instanceof ThrottlingException<a name="line.63"></a>
+<span class="sourceLineNo">063</span> || cur instanceof RegionTooBusyException || cur instanceof RpcThrottlingException<a name="line.63"></a>
<span class="sourceLineNo">064</span> || cur instanceof MultiActionResultTooLarge || cur instanceof RetryImmediatelyException<a name="line.64"></a>
<span class="sourceLineNo">065</span> || cur instanceof CallQueueTooBigException || cur instanceof CallDroppedException<a name="line.65"></a>
<span class="sourceLineNo">066</span> || cur instanceof NotServingRegionException || cur instanceof RequestTooBigException);<a name="line.66"></a>
@@ -81,7 +81,7 @@
<span class="sourceLineNo">073</span> * - nested exceptions<a name="line.73"></a>
<span class="sourceLineNo">074</span> *<a name="line.74"></a>
<span class="sourceLineNo">075</span> * Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * ThrottlingException<a name="line.76"></a>
+<span class="sourceLineNo">076</span> * RpcThrottlingException<a name="line.76"></a>
<span class="sourceLineNo">077</span> * @return null if we didn't find the exception, the exception otherwise.<a name="line.77"></a>
<span class="sourceLineNo">078</span> */<a name="line.78"></a>
<span class="sourceLineNo">079</span> public static Throwable findException(Object exception) {<a name="line.79"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
index a70ec7a..a9abfb0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
@@ -67,7 +67,7 @@
<span class="sourceLineNo">059</span><a name="line.59"></a>
<span class="sourceLineNo">060</span> @Override<a name="line.60"></a>
<span class="sourceLineNo">061</span> public void checkQuota(int numWrites, int numReads, int numScans)<a name="line.61"></a>
-<span class="sourceLineNo">062</span> throws ThrottlingException {<a name="line.62"></a>
+<span class="sourceLineNo">062</span> throws RpcThrottlingException {<a name="line.62"></a>
<span class="sourceLineNo">063</span> writeConsumed = estimateConsume(OperationType.MUTATE, numWrites, 100);<a name="line.63"></a>
<span class="sourceLineNo">064</span> readConsumed = estimateConsume(OperationType.GET, numReads, 100);<a name="line.64"></a>
<span class="sourceLineNo">065</span> readConsumed += estimateConsume(OperationType.SCAN, numScans, 1000);<a name="line.65"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
index 34334d2..f04e7d4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
@@ -51,7 +51,7 @@
<span class="sourceLineNo">043</span><a name="line.43"></a>
<span class="sourceLineNo">044</span> @Override<a name="line.44"></a>
<span class="sourceLineNo">045</span> public void checkQuota(int numWrites, int numReads, int numScans)<a name="line.45"></a>
-<span class="sourceLineNo">046</span> throws ThrottlingException {<a name="line.46"></a>
+<span class="sourceLineNo">046</span> throws RpcThrottlingException {<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>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
index a461337..b7a8227 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
@@ -44,7 +44,7 @@
<span class="sourceLineNo">036</span><a name="line.36"></a>
<span class="sourceLineNo">037</span> @Override<a name="line.37"></a>
<span class="sourceLineNo">038</span> public void checkQuota(long estimateWriteSize, long estimateReadSize)<a name="line.38"></a>
-<span class="sourceLineNo">039</span> throws ThrottlingException {<a name="line.39"></a>
+<span class="sourceLineNo">039</span> throws RpcThrottlingException {<a name="line.39"></a>
<span class="sourceLineNo">040</span> // no-op<a name="line.40"></a>
<span class="sourceLineNo">041</span> }<a name="line.41"></a>
<span class="sourceLineNo">042</span><a name="line.42"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html
index 71eeff0..7aaa8a6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html
@@ -49,38 +49,39 @@
<span class="sourceLineNo">041</span> * @param numWrites number of write operation that will be performed<a name="line.41"></a>
<span class="sourceLineNo">042</span> * @param numReads number of small-read operation that will be performed<a name="line.42"></a>
<span class="sourceLineNo">043</span> * @param numScans number of long-read operation that will be performed<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * @throws ThrottlingException if the operation cannot be performed<a name="line.44"></a>
-<span class="sourceLineNo">045</span> */<a name="line.45"></a>
-<span class="sourceLineNo">046</span> void checkQuota(int numWrites, int numReads, int numScans)<a name="line.46"></a>
-<span class="sourceLineNo">047</span> throws ThrottlingException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span> /** Cleanup method on operation completion */<a name="line.49"></a>
-<span class="sourceLineNo">050</span> void close();<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> * Add a get result. This will be used to calculate the exact quota and<a name="line.53"></a>
-<span class="sourceLineNo">054</span> * have a better short-read average size for the next time.<a name="line.54"></a>
-<span class="sourceLineNo">055</span> */<a name="line.55"></a>
-<span class="sourceLineNo">056</span> void addGetResult(Result result);<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span> /**<a name="line.58"></a>
-<span class="sourceLineNo">059</span> * Add a scan result. This will be used to calculate the exact quota and<a name="line.59"></a>
-<span class="sourceLineNo">060</span> * have a better long-read average size for the next time.<a name="line.60"></a>
-<span class="sourceLineNo">061</span> */<a name="line.61"></a>
-<span class="sourceLineNo">062</span> void addScanResult(List<Result> results);<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> * Add a mutation result. This will be used to calculate the exact quota and<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * have a better mutation average size for the next time.<a name="line.66"></a>
-<span class="sourceLineNo">067</span> */<a name="line.67"></a>
-<span class="sourceLineNo">068</span> void addMutation(Mutation mutation);<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span> /** @return the number of bytes available to read to avoid exceeding the quota */<a name="line.70"></a>
-<span class="sourceLineNo">071</span> long getReadAvailable();<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span> /** @return the number of bytes available to write to avoid exceeding the quota */<a name="line.73"></a>
-<span class="sourceLineNo">074</span> long getWriteAvailable();<a name="line.74"></a>
-<span class="sourceLineNo">075</span>}<a name="line.75"></a>
+<span class="sourceLineNo">044</span> * @throws RpcThrottlingException if the operation cannot be performed because<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * RPC quota is exceeded.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> */<a name="line.46"></a>
+<span class="sourceLineNo">047</span> void checkQuota(int numWrites, int numReads, int numScans)<a name="line.47"></a>
+<span class="sourceLineNo">048</span> throws RpcThrottlingException;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span> /** Cleanup method on operation completion */<a name="line.50"></a>
+<span class="sourceLineNo">051</span> void close();<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> * Add a get result. This will be used to calculate the exact quota and<a name="line.54"></a>
+<span class="sourceLineNo">055</span> * have a better short-read average size for the next time.<a name="line.55"></a>
+<span class="sourceLineNo">056</span> */<a name="line.56"></a>
+<span class="sourceLineNo">057</span> void addGetResult(Result result);<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span> /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span> * Add a scan result. This will be used to calculate the exact quota and<a name="line.60"></a>
+<span class="sourceLineNo">061</span> * have a better long-read average size for the next time.<a name="line.61"></a>
+<span class="sourceLineNo">062</span> */<a name="line.62"></a>
+<span class="sourceLineNo">063</span> void addScanResult(List<Result> results);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span> /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * Add a mutation result. This will be used to calculate the exact quota and<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * have a better mutation average size for the next time.<a name="line.67"></a>
+<span class="sourceLineNo">068</span> */<a name="line.68"></a>
+<span class="sourceLineNo">069</span> void addMutation(Mutation mutation);<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span> /** @return the number of bytes available to read to avoid exceeding the quota */<a name="line.71"></a>
+<span class="sourceLineNo">072</span> long getReadAvailable();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span> /** @return the number of bytes available to write to avoid exceeding the quota */<a name="line.74"></a>
+<span class="sourceLineNo">075</span> long getWriteAvailable();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>}<a name="line.76"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html
index 71eeff0..7aaa8a6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html
@@ -49,38 +49,39 @@
<span class="sourceLineNo">041</span> * @param numWrites number of write operation that will be performed<a name="line.41"></a>
<span class="sourceLineNo">042</span> * @param numReads number of small-read operation that will be performed<a name="line.42"></a>
<span class="sourceLineNo">043</span> * @param numScans number of long-read operation that will be performed<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * @throws ThrottlingException if the operation cannot be performed<a name="line.44"></a>
-<span class="sourceLineNo">045</span> */<a name="line.45"></a>
-<span class="sourceLineNo">046</span> void checkQuota(int numWrites, int numReads, int numScans)<a name="line.46"></a>
-<span class="sourceLineNo">047</span> throws ThrottlingException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span> /** Cleanup method on operation completion */<a name="line.49"></a>
-<span class="sourceLineNo">050</span> void close();<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> * Add a get result. This will be used to calculate the exact quota and<a name="line.53"></a>
-<span class="sourceLineNo">054</span> * have a better short-read average size for the next time.<a name="line.54"></a>
-<span class="sourceLineNo">055</span> */<a name="line.55"></a>
-<span class="sourceLineNo">056</span> void addGetResult(Result result);<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span> /**<a name="line.58"></a>
-<span class="sourceLineNo">059</span> * Add a scan result. This will be used to calculate the exact quota and<a name="line.59"></a>
-<span class="sourceLineNo">060</span> * have a better long-read average size for the next time.<a name="line.60"></a>
-<span class="sourceLineNo">061</span> */<a name="line.61"></a>
-<span class="sourceLineNo">062</span> void addScanResult(List<Result> results);<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> * Add a mutation result. This will be used to calculate the exact quota and<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * have a better mutation average size for the next time.<a name="line.66"></a>
-<span class="sourceLineNo">067</span> */<a name="line.67"></a>
-<span class="sourceLineNo">068</span> void addMutation(Mutation mutation);<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span> /** @return the number of bytes available to read to avoid exceeding the quota */<a name="line.70"></a>
-<span class="sourceLineNo">071</span> long getReadAvailable();<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span> /** @return the number of bytes available to write to avoid exceeding the quota */<a name="line.73"></a>
-<span class="sourceLineNo">074</span> long getWriteAvailable();<a name="line.74"></a>
-<span class="sourceLineNo">075</span>}<a name="line.75"></a>
+<span class="sourceLineNo">044</span> * @throws RpcThrottlingException if the operation cannot be performed because<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * RPC quota is exceeded.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> */<a name="line.46"></a>
+<span class="sourceLineNo">047</span> void checkQuota(int numWrites, int numReads, int numScans)<a name="line.47"></a>
+<span class="sourceLineNo">048</span> throws RpcThrottlingException;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span> /** Cleanup method on operation completion */<a name="line.50"></a>
+<span class="sourceLineNo">051</span> void close();<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> * Add a get result. This will be used to calculate the exact quota and<a name="line.54"></a>
+<span class="sourceLineNo">055</span> * have a better short-read average size for the next time.<a name="line.55"></a>
+<span class="sourceLineNo">056</span> */<a name="line.56"></a>
+<span class="sourceLineNo">057</span> void addGetResult(Result result);<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span> /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span> * Add a scan result. This will be used to calculate the exact quota and<a name="line.60"></a>
+<span class="sourceLineNo">061</span> * have a better long-read average size for the next time.<a name="line.61"></a>
+<span class="sourceLineNo">062</span> */<a name="line.62"></a>
+<span class="sourceLineNo">063</span> void addScanResult(List<Result> results);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span> /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * Add a mutation result. This will be used to calculate the exact quota and<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * have a better mutation average size for the next time.<a name="line.67"></a>
+<span class="sourceLineNo">068</span> */<a name="line.68"></a>
+<span class="sourceLineNo">069</span> void addMutation(Mutation mutation);<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span> /** @return the number of bytes available to read to avoid exceeding the quota */<a name="line.71"></a>
+<span class="sourceLineNo">072</span> long getReadAvailable();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span> /** @return the number of bytes available to write to avoid exceeding the quota */<a name="line.74"></a>
+<span class="sourceLineNo">075</span> long getWriteAvailable();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>}<a name="line.76"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
index 622995f..80bd305 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
@@ -41,10 +41,10 @@
<span class="sourceLineNo">033</span> *<a name="line.33"></a>
<span class="sourceLineNo">034</span> * @param estimateWriteSize the write size that will be checked against the available quota<a name="line.34"></a>
<span class="sourceLineNo">035</span> * @param estimateReadSize the read size that will be checked against the available quota<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * @throws ThrottlingException thrown if not enough avialable resources to perform operation.<a name="line.36"></a>
+<span class="sourceLineNo">036</span> * @throws RpcThrottlingException thrown if not enough avialable resources to perform operation.<a name="line.36"></a>
<span class="sourceLineNo">037</span> */<a name="line.37"></a>
<span class="sourceLineNo">038</span> void checkQuota(long estimateWriteSize, long estimateReadSize)<a name="line.38"></a>
-<span class="sourceLineNo">039</span> throws ThrottlingException;<a name="line.39"></a>
+<span class="sourceLineNo">039</span> throws RpcThrottlingException;<a name="line.39"></a>
<span class="sourceLineNo">040</span><a name="line.40"></a>
<span class="sourceLineNo">041</span> /**<a name="line.41"></a>
<span class="sourceLineNo">042</span> * Removes the specified write and read amount from the quota.<a name="line.42"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
index 5f2a433..0864582 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
@@ -135,10 +135,10 @@
<span class="sourceLineNo">127</span> * @param region the region where the operation will be performed<a name="line.127"></a>
<span class="sourceLineNo">128</span> * @param type the operation type<a name="line.128"></a>
<span class="sourceLineNo">129</span> * @return the OperationQuota<a name="line.129"></a>
-<span class="sourceLineNo">130</span> * @throws ThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.130"></a>
+<span class="sourceLineNo">130</span> * @throws RpcThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.130"></a>
<span class="sourceLineNo">131</span> */<a name="line.131"></a>
<span class="sourceLineNo">132</span> public OperationQuota checkQuota(final Region region,<a name="line.132"></a>
-<span class="sourceLineNo">133</span> final OperationQuota.OperationType type) throws IOException, ThrottlingException {<a name="line.133"></a>
+<span class="sourceLineNo">133</span> final OperationQuota.OperationType type) throws IOException, RpcThrottlingException {<a name="line.133"></a>
<span class="sourceLineNo">134</span> switch (type) {<a name="line.134"></a>
<span class="sourceLineNo">135</span> case SCAN: return checkQuota(region, 0, 0, 1);<a name="line.135"></a>
<span class="sourceLineNo">136</span> case GET: return checkQuota(region, 0, 1, 0);<a name="line.136"></a>
@@ -154,10 +154,10 @@
<span class="sourceLineNo">146</span> * @param region the region where the operation will be performed<a name="line.146"></a>
<span class="sourceLineNo">147</span> * @param actions the "multi" actions to perform<a name="line.147"></a>
<span class="sourceLineNo">148</span> * @return the OperationQuota<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * @throws ThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.149"></a>
+<span class="sourceLineNo">149</span> * @throws RpcThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.149"></a>
<span class="sourceLineNo">150</span> */<a name="line.150"></a>
<span class="sourceLineNo">151</span> public OperationQuota checkQuota(final Region region,<a name="line.151"></a>
-<span class="sourceLineNo">152</span> final List<ClientProtos.Action> actions) throws IOException, ThrottlingException {<a name="line.152"></a>
+<span class="sourceLineNo">152</span> final List<ClientProtos.Action> actions) throws IOException, RpcThrottlingException {<a name="line.152"></a>
<span class="sourceLineNo">153</span> int numWrites = 0;<a name="line.153"></a>
<span class="sourceLineNo">154</span> int numReads = 0;<a name="line.154"></a>
<span class="sourceLineNo">155</span> for (final ClientProtos.Action action: actions) {<a name="line.155"></a>
@@ -179,11 +179,11 @@
<span class="sourceLineNo">171</span> * @param numReads number of short-reads to perform<a name="line.171"></a>
<span class="sourceLineNo">172</span> * @param numScans number of scan to perform<a name="line.172"></a>
<span class="sourceLineNo">173</span> * @return the OperationQuota<a name="line.173"></a>
-<span class="sourceLineNo">174</span> * @throws ThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.174"></a>
+<span class="sourceLineNo">174</span> * @throws RpcThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.174"></a>
<span class="sourceLineNo">175</span> */<a name="line.175"></a>
<span class="sourceLineNo">176</span> private OperationQuota checkQuota(final Region region,<a name="line.176"></a>
<span class="sourceLineNo">177</span> final int numWrites, final int numReads, final int numScans)<a name="line.177"></a>
-<span class="sourceLineNo">178</span> throws IOException, ThrottlingException {<a name="line.178"></a>
+<span class="sourceLineNo">178</span> throws IOException, RpcThrottlingException {<a name="line.178"></a>
<span class="sourceLineNo">179</span> Optional<User> user = RpcServer.getRequestUser();<a name="line.179"></a>
<span class="sourceLineNo">180</span> UserGroupInformation ugi;<a name="line.180"></a>
<span class="sourceLineNo">181</span> if (user.isPresent()) {<a name="line.181"></a>
@@ -196,7 +196,7 @@
<span class="sourceLineNo">188</span> OperationQuota quota = getQuota(ugi, table);<a name="line.188"></a>
<span class="sourceLineNo">189</span> try {<a name="line.189"></a>
<span class="sourceLineNo">190</span> quota.checkQuota(numWrites, numReads, numScans);<a name="line.190"></a>
-<span class="sourceLineNo">191</span> } catch (ThrottlingException e) {<a name="line.191"></a>
+<span class="sourceLineNo">191</span> } catch (RpcThrottlingException e) {<a name="line.191"></a>
<span class="sourceLineNo">192</span> LOG.debug("Throttling exception for user=" + ugi.getUserName() +<a name="line.192"></a>
<span class="sourceLineNo">193</span> " table=" + table + " numWrites=" + numWrites +<a name="line.193"></a>
<span class="sourceLineNo">194</span> " numReads=" + numReads + " numScans=" + numScans +<a name="line.194"></a>
[10/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
@@ -72,7 +72,7 @@
<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
<span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
<span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
<span class="sourceLineNo">069</span><a name="line.69"></a>
<span class="sourceLineNo">070</span> @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
<span class="sourceLineNo">078</span> @BeforeClass<a name="line.78"></a>
<span class="sourceLineNo">079</span> public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
<span class="sourceLineNo">080</span> TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span> admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span> public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span> // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span> public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> final List<RegionServerThread> rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span> for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span> }<a name="line.103"></a>
-<span class="sourceLineNo">104</span> // Wait for all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span> public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span> return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> }<a name="line.111"></a>
-<span class="sourceLineNo">112</span> }<a name="line.112"></a>
-<span class="sourceLineNo">113</span> return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span> public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.118"></a>
-<span class="sourceLineNo">119</span> for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span> // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span> }<a name="line.141"></a>
-<span class="sourceLineNo">142</span> });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span> @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span> public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span> });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span> // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span> public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span> int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span> admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span> if (admin.getPeersCount() <= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span> Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span> }<a name="line.183"></a>
-<span class="sourceLineNo">184</span> // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span> doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span> public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span> // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span> LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span> });<a name="line.196"></a>
-<span class="sourceLineNo">197</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<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> @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span> public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span> // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span> RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span> byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span> for (int i = 0; i < 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> if (row.length > 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span> Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span> }<a name="line.222"></a>
-<span class="sourceLineNo">223</span> }<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span> null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span> public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span> public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span> return failure;<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> admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span> utility1.deleteTableData(tableName);<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> @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span> //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span> // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span> doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span> public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span> });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span> //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span> //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span> "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<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> @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span> //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span> "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> }<a name="line.297"></a>
+<span class="sourceLineNo">081</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span> public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span> // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> final List<RegionServerThread> rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span> for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span> // Wait for all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span> public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span> for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span> return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> }<a name="line.110"></a>
+<span class="sourceLineNo">111</span> }<a name="line.111"></a>
+<span class="sourceLineNo">112</span> return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span> public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.117"></a>
+<span class="sourceLineNo">118</span> for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span> // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span> @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span> public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<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><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span> public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span> public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<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> doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin.removePeer("testCustomReplicationEndpoint");<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span> int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span> admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span> if (admin.getPeersCount() <= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> }<a name="line.182"></a>
+<span class="sourceLineNo">183</span> // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span> doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span> public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span> // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span> LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span> });<a name="line.195"></a>
+<span class="sourceLineNo">196</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span> }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span> @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span> public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span> final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span> // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span> RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span> byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span> for (int i = 0; i < 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> if (row.length > 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span> null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span> public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<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> @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span> public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span> }<a name="line.242"></a>
+<span class="sourceLineNo">243</span> });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span> utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span> @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span> //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span> doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span> public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span> });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span> //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<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> @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span> //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span> "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span> //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span> "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<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><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span> /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span> allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span> the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> */<a name="line.309"></a>
-<span class="sourceLineNo">310</span> String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span> long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span> String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span> String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span> String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span> long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span> source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span> source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span> source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span> source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span> source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span> source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span> source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span> source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span> verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span> verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span> verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> doPut(connection, row);<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><a name="line.363"></a>
-<span class="sourceLineNo">364</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span> Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span> }<a name="line.369"></a>
-<span class="sourceLineNo">370</span> }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span> private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span> static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> static volatile List<Entry> lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span> @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span> /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span> allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span> the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span> String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span> String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span> long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span> String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span> source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span> source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span> source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span> source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span> source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span> source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span> source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span> source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span> source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span> verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span> verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span> verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span> doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span> }<a name="line.360"></a>
+<span class="sourceLineNo">361</span> }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span> try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span> Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span> put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span> }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span> private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span> return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span> }<a name="line.374"></a>
+<span class="sourceLineNo">375</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span> Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span> static volatile List<Entry> lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span> public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> replicateCount.set(0);<a name="line.391"></a>
<span class="sourceLineNo">392</span> contructedCount.incrementAndGet();<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>
@@ -441,127 +441,131 @@
<span class="sourceLineNo">433</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
<span class="sourceLineNo">434</span> static boolean failedOnce;<a name="line.434"></a>
<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span> }<a name="line.441"></a>
-<span class="sourceLineNo">442</span> return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span> }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span> @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span> failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return new FailingDummyReplicator(entries, ordinal);<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> protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span> private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span> public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span> }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span> @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span> return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span> }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span> @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span> // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span> if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span> } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span> failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span> return new FailingDummyReplicator(entries, ordinal);<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><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span> @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span> public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> return ordinal;<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><a name="line.470"></a>
-<span class="sourceLineNo">471</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span> super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span> }<a name="line.475"></a>
+<span class="sourceLineNo">460</span> protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span> private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span> super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span> this.ordinal = ordinal;<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> @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span> public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span> return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span> }<a name="line.472"></a>
+<span class="sourceLineNo">473</span> }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span> public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span> }<a name="line.480"></a>
-<span class="sourceLineNo">481</span> }<a name="line.481"></a>
-<span class="sourceLineNo">482</span> }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span> static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span> @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span> try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span> // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span> doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span> } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span> return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span> }<a name="line.502"></a>
-<span class="sourceLineNo">503</span> }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span> super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span> }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span> @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span> public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span> @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span> // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span> doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span> return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span> }<a name="line.506"></a>
+<span class="sourceLineNo">507</span> }<a name="line.507"></a>
<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span> @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span> try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span> super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span> doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span> ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span> public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span> @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span> int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> for (int i = size-1; i >= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span> row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> cells.remove(i);<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> return entry;<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> }<a name="line.537"></a>
-<span class="sourceLineNo">538</span> }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span> @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span> public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span> return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span> public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span> return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span> @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span> try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span> doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span> } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span> ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span> return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span> }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span> @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span> public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span> @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (int i = size-1; i >= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span> row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span> cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span> }<a name="line.536"></a>
+<span class="sourceLineNo">537</span> }<a name="line.537"></a>
+<span class="sourceLineNo">538</span> return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> });<a name="line.540"></a>
+<span class="sourceLineNo">541</span> }<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> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span> @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span> public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> return entry;<a name="line.549"></a>
<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span> return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
<span class="sourceLineNo">555</span> }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
[16/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
index 38bca54..d404ed4 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
@@ -224,7 +224,7 @@
<span class="sourceLineNo">216</span> try {<a name="line.216"></a>
<span class="sourceLineNo">217</span> limiter.checkQuota(1, 1);<a name="line.217"></a>
<span class="sourceLineNo">218</span> fail("Should have thrown ThrottlingException");<a name="line.218"></a>
-<span class="sourceLineNo">219</span> } catch (ThrottlingException e) {<a name="line.219"></a>
+<span class="sourceLineNo">219</span> } catch (RpcThrottlingException e) {<a name="line.219"></a>
<span class="sourceLineNo">220</span> // expected<a name="line.220"></a>
<span class="sourceLineNo">221</span> }<a name="line.221"></a>
<span class="sourceLineNo">222</span> }<a name="line.222"></a>
@@ -233,7 +233,7 @@
<span class="sourceLineNo">225</span> for (int i = 0; i < availReqs; ++i) {<a name="line.225"></a>
<span class="sourceLineNo">226</span> try {<a name="line.226"></a>
<span class="sourceLineNo">227</span> limiter.checkQuota(1, 1);<a name="line.227"></a>
-<span class="sourceLineNo">228</span> } catch (ThrottlingException e) {<a name="line.228"></a>
+<span class="sourceLineNo">228</span> } catch (RpcThrottlingException e) {<a name="line.228"></a>
<span class="sourceLineNo">229</span> fail("Unexpected ThrottlingException after " + i + " requests. limit=" + availReqs);<a name="line.229"></a>
<span class="sourceLineNo">230</span> }<a name="line.230"></a>
<span class="sourceLineNo">231</span> limiter.grabQuota(1, 1);<a name="line.231"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html
index 3289d63..28d5840 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html
@@ -528,7 +528,7 @@
<span class="sourceLineNo">520</span> }<a name="line.520"></a>
<span class="sourceLineNo">521</span> count += tables.length;<a name="line.521"></a>
<span class="sourceLineNo">522</span> }<a name="line.522"></a>
-<span class="sourceLineNo">523</span> } catch (ThrottlingException e) {<a name="line.523"></a>
+<span class="sourceLineNo">523</span> } catch (RpcThrottlingException e) {<a name="line.523"></a>
<span class="sourceLineNo">524</span> LOG.error("put failed after nRetries=" + count, e);<a name="line.524"></a>
<span class="sourceLineNo">525</span> }<a name="line.525"></a>
<span class="sourceLineNo">526</span> return count;<a name="line.526"></a>
@@ -544,7 +544,7 @@
<span class="sourceLineNo">536</span> }<a name="line.536"></a>
<span class="sourceLineNo">537</span> count += tables.length;<a name="line.537"></a>
<span class="sourceLineNo">538</span> }<a name="line.538"></a>
-<span class="sourceLineNo">539</span> } catch (ThrottlingException e) {<a name="line.539"></a>
+<span class="sourceLineNo">539</span> } catch (RpcThrottlingException e) {<a name="line.539"></a>
<span class="sourceLineNo">540</span> LOG.error("get failed after nRetries=" + count, e);<a name="line.540"></a>
<span class="sourceLineNo">541</span> }<a name="line.541"></a>
<span class="sourceLineNo">542</span> return count;<a name="line.542"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.CoprocessorCounter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.CoprocessorCounter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.CoprocessorCounter.html
index 61b1cde..96ac231 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.CoprocessorCounter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.CoprocessorCounter.html
@@ -98,7 +98,7 @@
<span class="sourceLineNo">090</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.90"></a>
<span class="sourceLineNo">091</span> HBaseClassTestRule.forClass(TestMasterReplication.class);<a name="line.91"></a>
<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span> private static final Logger LOG = LoggerFactory.getLogger(TestReplicationBase.class);<a name="line.93"></a>
+<span class="sourceLineNo">093</span> private static final Logger LOG = LoggerFactory.getLogger(TestMasterReplication.class);<a name="line.93"></a>
<span class="sourceLineNo">094</span><a name="line.94"></a>
<span class="sourceLineNo">095</span> private Configuration baseConfiguration;<a name="line.95"></a>
<span class="sourceLineNo">096</span><a name="line.96"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.html
index 61b1cde..96ac231 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.html
@@ -98,7 +98,7 @@
<span class="sourceLineNo">090</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.90"></a>
<span class="sourceLineNo">091</span> HBaseClassTestRule.forClass(TestMasterReplication.class);<a name="line.91"></a>
<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span> private static final Logger LOG = LoggerFactory.getLogger(TestReplicationBase.class);<a name="line.93"></a>
+<span class="sourceLineNo">093</span> private static final Logger LOG = LoggerFactory.getLogger(TestMasterReplication.class);<a name="line.93"></a>
<span class="sourceLineNo">094</span><a name="line.94"></a>
<span class="sourceLineNo">095</span> private Configuration baseConfiguration;<a name="line.95"></a>
<span class="sourceLineNo">096</span><a name="line.96"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.html
index 525102f..d56c027 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.html
@@ -66,7 +66,7 @@
<span class="sourceLineNo">058</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.58"></a>
<span class="sourceLineNo">059</span> HBaseClassTestRule.forClass(TestMultiSlaveReplication.class);<a name="line.59"></a>
<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span> private static final Logger LOG = LoggerFactory.getLogger(TestReplicationBase.class);<a name="line.61"></a>
+<span class="sourceLineNo">061</span> private static final Logger LOG = LoggerFactory.getLogger(TestMultiSlaveReplication.class);<a name="line.61"></a>
<span class="sourceLineNo">062</span><a name="line.62"></a>
<span class="sourceLineNo">063</span> private static Configuration conf1;<a name="line.63"></a>
<span class="sourceLineNo">064</span> private static Configuration conf2;<a name="line.64"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
index 55fce2e..55f92a9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
@@ -57,206 +57,226 @@
<span class="sourceLineNo">049</span>import org.junit.ClassRule;<a name="line.49"></a>
<span class="sourceLineNo">050</span>import org.junit.Test;<a name="line.50"></a>
<span class="sourceLineNo">051</span>import org.junit.experimental.categories.Category;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.slf4j.Logger;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.slf4j.LoggerFactory;<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>@Category({MediumTests.class})<a name="line.55"></a>
-<span class="sourceLineNo">056</span>public class TestNamespaceReplication extends TestReplicationBase {<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span> @ClassRule<a name="line.58"></a>
-<span class="sourceLineNo">059</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.59"></a>
-<span class="sourceLineNo">060</span> HBaseClassTestRule.forClass(TestNamespaceReplication.class);<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span> private static final Logger LOG = LoggerFactory.getLogger(TestNamespaceReplication.class);<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span> private static String ns1 = "ns1";<a name="line.64"></a>
-<span class="sourceLineNo">065</span> private static String ns2 = "ns2";<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span> private static final TableName tabAName = TableName.valueOf("ns1:TA");<a name="line.67"></a>
-<span class="sourceLineNo">068</span> private static final TableName tabBName = TableName.valueOf("ns2:TB");<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span> private static final byte[] f1Name = Bytes.toBytes("f1");<a name="line.70"></a>
-<span class="sourceLineNo">071</span> private static final byte[] f2Name = Bytes.toBytes("f2");<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span> private static final byte[] val = Bytes.toBytes("myval");<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span> private static Connection connection1;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> private static Connection connection2;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> private static Admin admin1;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> private static Admin admin2;<a name="line.78"></a>
+<span class="sourceLineNo">052</span>import org.junit.runner.RunWith;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.junit.runners.Parameterized;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.junit.runners.Parameterized.Parameter;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.junit.runners.Parameterized.Parameters;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.slf4j.Logger;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.slf4j.LoggerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableList;<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>@RunWith(Parameterized.class)<a name="line.61"></a>
+<span class="sourceLineNo">062</span>@Category({ MediumTests.class })<a name="line.62"></a>
+<span class="sourceLineNo">063</span>public class TestNamespaceReplication extends TestReplicationBase {<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span> @ClassRule<a name="line.65"></a>
+<span class="sourceLineNo">066</span> public static final HBaseClassTestRule CLASS_RULE =<a name="line.66"></a>
+<span class="sourceLineNo">067</span> HBaseClassTestRule.forClass(TestNamespaceReplication.class);<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span> private static final Logger LOG = LoggerFactory.getLogger(TestNamespaceReplication.class);<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span> private static String ns1 = "ns1";<a name="line.71"></a>
+<span class="sourceLineNo">072</span> private static String ns2 = "ns2";<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span> private static final TableName tabAName = TableName.valueOf("ns1:TA");<a name="line.74"></a>
+<span class="sourceLineNo">075</span> private static final TableName tabBName = TableName.valueOf("ns2:TB");<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span> private static final byte[] f1Name = Bytes.toBytes("f1");<a name="line.77"></a>
+<span class="sourceLineNo">078</span> private static final byte[] f2Name = Bytes.toBytes("f2");<a name="line.78"></a>
<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span> @BeforeClass<a name="line.80"></a>
-<span class="sourceLineNo">081</span> public static void setUpBeforeClass() throws Exception {<a name="line.81"></a>
-<span class="sourceLineNo">082</span> TestReplicationBase.setUpBeforeClass();<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span> connection1 = ConnectionFactory.createConnection(conf1);<a name="line.84"></a>
-<span class="sourceLineNo">085</span> connection2 = ConnectionFactory.createConnection(conf2);<a name="line.85"></a>
-<span class="sourceLineNo">086</span> admin1 = connection1.getAdmin();<a name="line.86"></a>
-<span class="sourceLineNo">087</span> admin2 = connection2.getAdmin();<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span> admin1.createNamespace(NamespaceDescriptor.create(ns1).build());<a name="line.89"></a>
-<span class="sourceLineNo">090</span> admin1.createNamespace(NamespaceDescriptor.create(ns2).build());<a name="line.90"></a>
-<span class="sourceLineNo">091</span> admin2.createNamespace(NamespaceDescriptor.create(ns1).build());<a name="line.91"></a>
-<span class="sourceLineNo">092</span> admin2.createNamespace(NamespaceDescriptor.create(ns2).build());<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span> TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tabAName);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.95"></a>
-<span class="sourceLineNo">096</span> .newBuilder(f1Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.96"></a>
-<span class="sourceLineNo">097</span> builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.97"></a>
-<span class="sourceLineNo">098</span> .newBuilder(f2Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.98"></a>
-<span class="sourceLineNo">099</span> TableDescriptor tabA = builder.build();<a name="line.99"></a>
-<span class="sourceLineNo">100</span> admin1.createTable(tabA);<a name="line.100"></a>
-<span class="sourceLineNo">101</span> admin2.createTable(tabA);<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span> builder = TableDescriptorBuilder.newBuilder(tabBName);<a name="line.103"></a>
-<span class="sourceLineNo">104</span> builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.104"></a>
-<span class="sourceLineNo">105</span> .newBuilder(f1Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.105"></a>
-<span class="sourceLineNo">106</span> builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.106"></a>
-<span class="sourceLineNo">107</span> .newBuilder(f2Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.107"></a>
-<span class="sourceLineNo">108</span> TableDescriptor tabB = builder.build();<a name="line.108"></a>
-<span class="sourceLineNo">109</span> admin1.createTable(tabB);<a name="line.109"></a>
-<span class="sourceLineNo">110</span> admin2.createTable(tabB);<a name="line.110"></a>
-<span class="sourceLineNo">111</span> }<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span> @AfterClass<a name="line.113"></a>
-<span class="sourceLineNo">114</span> public static void tearDownAfterClass() throws Exception {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> admin1.disableTable(tabAName);<a name="line.115"></a>
-<span class="sourceLineNo">116</span> admin1.deleteTable(tabAName);<a name="line.116"></a>
-<span class="sourceLineNo">117</span> admin1.disableTable(tabBName);<a name="line.117"></a>
-<span class="sourceLineNo">118</span> admin1.deleteTable(tabBName);<a name="line.118"></a>
-<span class="sourceLineNo">119</span> admin2.disableTable(tabAName);<a name="line.119"></a>
-<span class="sourceLineNo">120</span> admin2.deleteTable(tabAName);<a name="line.120"></a>
-<span class="sourceLineNo">121</span> admin2.disableTable(tabBName);<a name="line.121"></a>
-<span class="sourceLineNo">122</span> admin2.deleteTable(tabBName);<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span> admin1.deleteNamespace(ns1);<a name="line.124"></a>
-<span class="sourceLineNo">125</span> admin1.deleteNamespace(ns2);<a name="line.125"></a>
-<span class="sourceLineNo">126</span> admin2.deleteNamespace(ns1);<a name="line.126"></a>
-<span class="sourceLineNo">127</span> admin2.deleteNamespace(ns2);<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> connection1.close();<a name="line.129"></a>
-<span class="sourceLineNo">130</span> connection2.close();<a name="line.130"></a>
-<span class="sourceLineNo">131</span> TestReplicationBase.tearDownAfterClass();<a name="line.131"></a>
-<span class="sourceLineNo">132</span> }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span> @Test<a name="line.134"></a>
-<span class="sourceLineNo">135</span> public void testNamespaceReplication() throws Exception {<a name="line.135"></a>
-<span class="sourceLineNo">136</span> String peerId = "2";<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span> Table htab1A = connection1.getTable(tabAName);<a name="line.138"></a>
-<span class="sourceLineNo">139</span> Table htab2A = connection2.getTable(tabAName);<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span> Table htab1B = connection1.getTable(tabBName);<a name="line.141"></a>
-<span class="sourceLineNo">142</span> Table htab2B = connection2.getTable(tabBName);<a name="line.142"></a>
+<span class="sourceLineNo">080</span> private static final byte[] val = Bytes.toBytes("myval");<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span> private static Connection connection1;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> private static Connection connection2;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> private static Admin admin1;<a name="line.84"></a>
+<span class="sourceLineNo">085</span> private static Admin admin2;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span> @Parameter<a name="line.87"></a>
+<span class="sourceLineNo">088</span> public boolean serialPeer;<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span> @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span> protected boolean isSerialPeer() {<a name="line.91"></a>
+<span class="sourceLineNo">092</span> return serialPeer;<a name="line.92"></a>
+<span class="sourceLineNo">093</span> }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span> @Parameters(name = "{index}: serialPeer={0}")<a name="line.95"></a>
+<span class="sourceLineNo">096</span> public static List<Boolean> parameters() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span> return ImmutableList.of(true, false);<a name="line.97"></a>
+<span class="sourceLineNo">098</span> }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span> @BeforeClass<a name="line.100"></a>
+<span class="sourceLineNo">101</span> public static void setUpBeforeClass() throws Exception {<a name="line.101"></a>
+<span class="sourceLineNo">102</span> TestReplicationBase.setUpBeforeClass();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span> connection1 = ConnectionFactory.createConnection(conf1);<a name="line.104"></a>
+<span class="sourceLineNo">105</span> connection2 = ConnectionFactory.createConnection(conf2);<a name="line.105"></a>
+<span class="sourceLineNo">106</span> admin1 = connection1.getAdmin();<a name="line.106"></a>
+<span class="sourceLineNo">107</span> admin2 = connection2.getAdmin();<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span> admin1.createNamespace(NamespaceDescriptor.create(ns1).build());<a name="line.109"></a>
+<span class="sourceLineNo">110</span> admin1.createNamespace(NamespaceDescriptor.create(ns2).build());<a name="line.110"></a>
+<span class="sourceLineNo">111</span> admin2.createNamespace(NamespaceDescriptor.create(ns1).build());<a name="line.111"></a>
+<span class="sourceLineNo">112</span> admin2.createNamespace(NamespaceDescriptor.create(ns2).build());<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span> TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tabAName);<a name="line.114"></a>
+<span class="sourceLineNo">115</span> builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.115"></a>
+<span class="sourceLineNo">116</span> .newBuilder(f1Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.116"></a>
+<span class="sourceLineNo">117</span> builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.117"></a>
+<span class="sourceLineNo">118</span> .newBuilder(f2Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.118"></a>
+<span class="sourceLineNo">119</span> TableDescriptor tabA = builder.build();<a name="line.119"></a>
+<span class="sourceLineNo">120</span> admin1.createTable(tabA);<a name="line.120"></a>
+<span class="sourceLineNo">121</span> admin2.createTable(tabA);<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span> builder = TableDescriptorBuilder.newBuilder(tabBName);<a name="line.123"></a>
+<span class="sourceLineNo">124</span> builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.124"></a>
+<span class="sourceLineNo">125</span> .newBuilder(f1Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.125"></a>
+<span class="sourceLineNo">126</span> builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.126"></a>
+<span class="sourceLineNo">127</span> .newBuilder(f2Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.127"></a>
+<span class="sourceLineNo">128</span> TableDescriptor tabB = builder.build();<a name="line.128"></a>
+<span class="sourceLineNo">129</span> admin1.createTable(tabB);<a name="line.129"></a>
+<span class="sourceLineNo">130</span> admin2.createTable(tabB);<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> @AfterClass<a name="line.133"></a>
+<span class="sourceLineNo">134</span> public static void tearDownAfterClass() throws Exception {<a name="line.134"></a>
+<span class="sourceLineNo">135</span> admin1.disableTable(tabAName);<a name="line.135"></a>
+<span class="sourceLineNo">136</span> admin1.deleteTable(tabAName);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> admin1.disableTable(tabBName);<a name="line.137"></a>
+<span class="sourceLineNo">138</span> admin1.deleteTable(tabBName);<a name="line.138"></a>
+<span class="sourceLineNo">139</span> admin2.disableTable(tabAName);<a name="line.139"></a>
+<span class="sourceLineNo">140</span> admin2.deleteTable(tabAName);<a name="line.140"></a>
+<span class="sourceLineNo">141</span> admin2.disableTable(tabBName);<a name="line.141"></a>
+<span class="sourceLineNo">142</span> admin2.deleteTable(tabBName);<a name="line.142"></a>
<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.144"></a>
-<span class="sourceLineNo">145</span> admin1.updateReplicationPeerConfig(peerId,<a name="line.145"></a>
-<span class="sourceLineNo">146</span> ReplicationPeerConfig.newBuilder(rpc).setReplicateAllUserTables(false).build());<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span> // add ns1 to peer config which replicate to cluster2<a name="line.148"></a>
-<span class="sourceLineNo">149</span> rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.149"></a>
-<span class="sourceLineNo">150</span> Set<String> namespaces = new HashSet<>();<a name="line.150"></a>
-<span class="sourceLineNo">151</span> namespaces.add(ns1);<a name="line.151"></a>
-<span class="sourceLineNo">152</span> admin1.updateReplicationPeerConfig(peerId,<a name="line.152"></a>
-<span class="sourceLineNo">153</span> ReplicationPeerConfig.newBuilder(rpc).setNamespaces(namespaces).build());<a name="line.153"></a>
-<span class="sourceLineNo">154</span> LOG.info("update peer config");<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> // Table A can be replicated to cluster2<a name="line.156"></a>
-<span class="sourceLineNo">157</span> put(htab1A, row, f1Name, f2Name);<a name="line.157"></a>
-<span class="sourceLineNo">158</span> ensureRowExisted(htab2A, row, f1Name, f2Name);<a name="line.158"></a>
-<span class="sourceLineNo">159</span> delete(htab1A, row, f1Name, f2Name);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> ensureRowNotExisted(htab2A, row, f1Name, f2Name);<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span> // Table B can not be replicated to cluster2<a name="line.162"></a>
-<span class="sourceLineNo">163</span> put(htab1B, row, f1Name, f2Name);<a name="line.163"></a>
-<span class="sourceLineNo">164</span> ensureRowNotExisted(htab2B, row, f1Name, f2Name);<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span> // add ns1:TA => 'f1' and ns2 to peer config which replicate to cluster2<a name="line.166"></a>
-<span class="sourceLineNo">167</span> rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.167"></a>
-<span class="sourceLineNo">168</span> namespaces = new HashSet<>();<a name="line.168"></a>
-<span class="sourceLineNo">169</span> namespaces.add(ns2);<a name="line.169"></a>
-<span class="sourceLineNo">170</span> Map<TableName, List<String>> tableCfs = new HashMap<>();<a name="line.170"></a>
-<span class="sourceLineNo">171</span> tableCfs.put(tabAName, new ArrayList<>());<a name="line.171"></a>
-<span class="sourceLineNo">172</span> tableCfs.get(tabAName).add("f1");<a name="line.172"></a>
-<span class="sourceLineNo">173</span> admin1.updateReplicationPeerConfig(peerId, ReplicationPeerConfig.newBuilder(rpc)<a name="line.173"></a>
-<span class="sourceLineNo">174</span> .setNamespaces(namespaces).setTableCFsMap(tableCfs).build());<a name="line.174"></a>
-<span class="sourceLineNo">175</span> LOG.info("update peer config");<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span> // Only family f1 of Table A can replicated to cluster2<a name="line.177"></a>
-<span class="sourceLineNo">178</span> put(htab1A, row, f1Name, f2Name);<a name="line.178"></a>
-<span class="sourceLineNo">179</span> ensureRowExisted(htab2A, row, f1Name);<a name="line.179"></a>
-<span class="sourceLineNo">180</span> delete(htab1A, row, f1Name, f2Name);<a name="line.180"></a>
-<span class="sourceLineNo">181</span> ensureRowNotExisted(htab2A, row, f1Name);<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> // All cfs of table B can replicated to cluster2<a name="line.183"></a>
-<span class="sourceLineNo">184</span> put(htab1B, row, f1Name, f2Name);<a name="line.184"></a>
-<span class="sourceLineNo">185</span> ensureRowExisted(htab2B, row, f1Name, f2Name);<a name="line.185"></a>
-<span class="sourceLineNo">186</span> delete(htab1B, row, f1Name, f2Name);<a name="line.186"></a>
-<span class="sourceLineNo">187</span> ensureRowNotExisted(htab2B, row, f1Name, f2Name);<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span> admin1.removeReplicationPeer(peerId);<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span> private void put(Table source, byte[] row, byte[]... families)<a name="line.192"></a>
-<span class="sourceLineNo">193</span> throws Exception {<a name="line.193"></a>
-<span class="sourceLineNo">194</span> for (byte[] fam : families) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span> Put put = new Put(row);<a name="line.195"></a>
-<span class="sourceLineNo">196</span> put.addColumn(fam, row, val);<a name="line.196"></a>
-<span class="sourceLineNo">197</span> source.put(put);<a name="line.197"></a>
-<span class="sourceLineNo">198</span> }<a name="line.198"></a>
-<span class="sourceLineNo">199</span> }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span> private void delete(Table source, byte[] row, byte[]... families)<a name="line.201"></a>
-<span class="sourceLineNo">202</span> throws Exception {<a name="line.202"></a>
-<span class="sourceLineNo">203</span> for (byte[] fam : families) {<a name="line.203"></a>
-<span class="sourceLineNo">204</span> Delete del = new Delete(row);<a name="line.204"></a>
-<span class="sourceLineNo">205</span> del.addFamily(fam);<a name="line.205"></a>
-<span class="sourceLineNo">206</span> source.delete(del);<a name="line.206"></a>
-<span class="sourceLineNo">207</span> }<a name="line.207"></a>
-<span class="sourceLineNo">208</span> }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span> private void ensureRowExisted(Table target, byte[] row, byte[]... families)<a name="line.210"></a>
-<span class="sourceLineNo">211</span> throws Exception {<a name="line.211"></a>
-<span class="sourceLineNo">212</span> for (byte[] fam : families) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span> Get get = new Get(row);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> get.addFamily(fam);<a name="line.214"></a>
-<span class="sourceLineNo">215</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span> if (i == NB_RETRIES - 1) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> fail("Waited too much time for put replication");<a name="line.217"></a>
-<span class="sourceLineNo">218</span> }<a name="line.218"></a>
-<span class="sourceLineNo">219</span> Result res = target.get(get);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> if (res.isEmpty()) {<a name="line.220"></a>
-<span class="sourceLineNo">221</span> LOG.info("Row not available");<a name="line.221"></a>
-<span class="sourceLineNo">222</span> } else {<a name="line.222"></a>
-<span class="sourceLineNo">223</span> assertEquals(1, res.size());<a name="line.223"></a>
-<span class="sourceLineNo">224</span> assertArrayEquals(val, res.value());<a name="line.224"></a>
-<span class="sourceLineNo">225</span> break;<a name="line.225"></a>
-<span class="sourceLineNo">226</span> }<a name="line.226"></a>
-<span class="sourceLineNo">227</span> Thread.sleep(SLEEP_TIME);<a name="line.227"></a>
-<span class="sourceLineNo">228</span> }<a name="line.228"></a>
-<span class="sourceLineNo">229</span> }<a name="line.229"></a>
-<span class="sourceLineNo">230</span> }<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span> private void ensureRowNotExisted(Table target, byte[] row, byte[]... families)<a name="line.232"></a>
-<span class="sourceLineNo">233</span> throws Exception {<a name="line.233"></a>
-<span class="sourceLineNo">234</span> for (byte[] fam : families) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span> Get get = new Get(row);<a name="line.235"></a>
-<span class="sourceLineNo">236</span> get.addFamily(fam);<a name="line.236"></a>
-<span class="sourceLineNo">237</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span> if (i == NB_RETRIES - 1) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> fail("Waited too much time for delete replication");<a name="line.239"></a>
-<span class="sourceLineNo">240</span> }<a name="line.240"></a>
-<span class="sourceLineNo">241</span> Result res = target.get(get);<a name="line.241"></a>
-<span class="sourceLineNo">242</span> if (res.size() >= 1) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span> LOG.info("Row not deleted");<a name="line.243"></a>
-<span class="sourceLineNo">244</span> } else {<a name="line.244"></a>
+<span class="sourceLineNo">144</span> admin1.deleteNamespace(ns1);<a name="line.144"></a>
+<span class="sourceLineNo">145</span> admin1.deleteNamespace(ns2);<a name="line.145"></a>
+<span class="sourceLineNo">146</span> admin2.deleteNamespace(ns1);<a name="line.146"></a>
+<span class="sourceLineNo">147</span> admin2.deleteNamespace(ns2);<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> connection1.close();<a name="line.149"></a>
+<span class="sourceLineNo">150</span> connection2.close();<a name="line.150"></a>
+<span class="sourceLineNo">151</span> TestReplicationBase.tearDownAfterClass();<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> @Test<a name="line.154"></a>
+<span class="sourceLineNo">155</span> public void testNamespaceReplication() throws Exception {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> String peerId = "2";<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span> Table htab1A = connection1.getTable(tabAName);<a name="line.158"></a>
+<span class="sourceLineNo">159</span> Table htab2A = connection2.getTable(tabAName);<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span> Table htab1B = connection1.getTable(tabBName);<a name="line.161"></a>
+<span class="sourceLineNo">162</span> Table htab2B = connection2.getTable(tabBName);<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.164"></a>
+<span class="sourceLineNo">165</span> admin1.updateReplicationPeerConfig(peerId,<a name="line.165"></a>
+<span class="sourceLineNo">166</span> ReplicationPeerConfig.newBuilder(rpc).setReplicateAllUserTables(false).build());<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span> // add ns1 to peer config which replicate to cluster2<a name="line.168"></a>
+<span class="sourceLineNo">169</span> rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.169"></a>
+<span class="sourceLineNo">170</span> Set<String> namespaces = new HashSet<>();<a name="line.170"></a>
+<span class="sourceLineNo">171</span> namespaces.add(ns1);<a name="line.171"></a>
+<span class="sourceLineNo">172</span> admin1.updateReplicationPeerConfig(peerId,<a name="line.172"></a>
+<span class="sourceLineNo">173</span> ReplicationPeerConfig.newBuilder(rpc).setNamespaces(namespaces).build());<a name="line.173"></a>
+<span class="sourceLineNo">174</span> LOG.info("update peer config");<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span> // Table A can be replicated to cluster2<a name="line.176"></a>
+<span class="sourceLineNo">177</span> put(htab1A, row, f1Name, f2Name);<a name="line.177"></a>
+<span class="sourceLineNo">178</span> ensureRowExisted(htab2A, row, f1Name, f2Name);<a name="line.178"></a>
+<span class="sourceLineNo">179</span> delete(htab1A, row, f1Name, f2Name);<a name="line.179"></a>
+<span class="sourceLineNo">180</span> ensureRowNotExisted(htab2A, row, f1Name, f2Name);<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span> // Table B can not be replicated to cluster2<a name="line.182"></a>
+<span class="sourceLineNo">183</span> put(htab1B, row, f1Name, f2Name);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> ensureRowNotExisted(htab2B, row, f1Name, f2Name);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> // add ns1:TA => 'f1' and ns2 to peer config which replicate to cluster2<a name="line.186"></a>
+<span class="sourceLineNo">187</span> rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.187"></a>
+<span class="sourceLineNo">188</span> namespaces = new HashSet<>();<a name="line.188"></a>
+<span class="sourceLineNo">189</span> namespaces.add(ns2);<a name="line.189"></a>
+<span class="sourceLineNo">190</span> Map<TableName, List<String>> tableCfs = new HashMap<>();<a name="line.190"></a>
+<span class="sourceLineNo">191</span> tableCfs.put(tabAName, new ArrayList<>());<a name="line.191"></a>
+<span class="sourceLineNo">192</span> tableCfs.get(tabAName).add("f1");<a name="line.192"></a>
+<span class="sourceLineNo">193</span> admin1.updateReplicationPeerConfig(peerId, ReplicationPeerConfig.newBuilder(rpc)<a name="line.193"></a>
+<span class="sourceLineNo">194</span> .setNamespaces(namespaces).setTableCFsMap(tableCfs).build());<a name="line.194"></a>
+<span class="sourceLineNo">195</span> LOG.info("update peer config");<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span> // Only family f1 of Table A can replicated to cluster2<a name="line.197"></a>
+<span class="sourceLineNo">198</span> put(htab1A, row, f1Name, f2Name);<a name="line.198"></a>
+<span class="sourceLineNo">199</span> ensureRowExisted(htab2A, row, f1Name);<a name="line.199"></a>
+<span class="sourceLineNo">200</span> delete(htab1A, row, f1Name, f2Name);<a name="line.200"></a>
+<span class="sourceLineNo">201</span> ensureRowNotExisted(htab2A, row, f1Name);<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span> // All cfs of table B can replicated to cluster2<a name="line.203"></a>
+<span class="sourceLineNo">204</span> put(htab1B, row, f1Name, f2Name);<a name="line.204"></a>
+<span class="sourceLineNo">205</span> ensureRowExisted(htab2B, row, f1Name, f2Name);<a name="line.205"></a>
+<span class="sourceLineNo">206</span> delete(htab1B, row, f1Name, f2Name);<a name="line.206"></a>
+<span class="sourceLineNo">207</span> ensureRowNotExisted(htab2B, row, f1Name, f2Name);<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span> admin1.removeReplicationPeer(peerId);<a name="line.209"></a>
+<span class="sourceLineNo">210</span> }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span> private void put(Table source, byte[] row, byte[]... families)<a name="line.212"></a>
+<span class="sourceLineNo">213</span> throws Exception {<a name="line.213"></a>
+<span class="sourceLineNo">214</span> for (byte[] fam : families) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span> Put put = new Put(row);<a name="line.215"></a>
+<span class="sourceLineNo">216</span> put.addColumn(fam, row, val);<a name="line.216"></a>
+<span class="sourceLineNo">217</span> source.put(put);<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><a name="line.220"></a>
+<span class="sourceLineNo">221</span> private void delete(Table source, byte[] row, byte[]... families)<a name="line.221"></a>
+<span class="sourceLineNo">222</span> throws Exception {<a name="line.222"></a>
+<span class="sourceLineNo">223</span> for (byte[] fam : families) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span> Delete del = new Delete(row);<a name="line.224"></a>
+<span class="sourceLineNo">225</span> del.addFamily(fam);<a name="line.225"></a>
+<span class="sourceLineNo">226</span> source.delete(del);<a name="line.226"></a>
+<span class="sourceLineNo">227</span> }<a name="line.227"></a>
+<span class="sourceLineNo">228</span> }<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> private void ensureRowExisted(Table target, byte[] row, byte[]... families)<a name="line.230"></a>
+<span class="sourceLineNo">231</span> throws Exception {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> for (byte[] fam : families) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span> Get get = new Get(row);<a name="line.233"></a>
+<span class="sourceLineNo">234</span> get.addFamily(fam);<a name="line.234"></a>
+<span class="sourceLineNo">235</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span> if (i == NB_RETRIES - 1) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> fail("Waited too much time for put replication");<a name="line.237"></a>
+<span class="sourceLineNo">238</span> }<a name="line.238"></a>
+<span class="sourceLineNo">239</span> Result res = target.get(get);<a name="line.239"></a>
+<span class="sourceLineNo">240</span> if (res.isEmpty()) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span> LOG.info("Row not available");<a name="line.241"></a>
+<span class="sourceLineNo">242</span> } else {<a name="line.242"></a>
+<span class="sourceLineNo">243</span> assertEquals(1, res.size());<a name="line.243"></a>
+<span class="sourceLineNo">244</span> assertArrayEquals(val, res.value());<a name="line.244"></a>
<span class="sourceLineNo">245</span> break;<a name="line.245"></a>
<span class="sourceLineNo">246</span> }<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Thread.sleep(SLEEP_TIME);<a name="line.247"></a>
+<span class="sourceLineNo">247</span> Thread.sleep(10 * SLEEP_TIME);<a name="line.247"></a>
<span class="sourceLineNo">248</span> }<a name="line.248"></a>
<span class="sourceLineNo">249</span> }<a name="line.249"></a>
<span class="sourceLineNo">250</span> }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>}<a name="line.251"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span> private void ensureRowNotExisted(Table target, byte[] row, byte[]... families)<a name="line.252"></a>
+<span class="sourceLineNo">253</span> throws Exception {<a name="line.253"></a>
+<span class="sourceLineNo">254</span> for (byte[] fam : families) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span> Get get = new Get(row);<a name="line.255"></a>
+<span class="sourceLineNo">256</span> get.addFamily(fam);<a name="line.256"></a>
+<span class="sourceLineNo">257</span> for (int i = 0; i < NB_RETRIES; i++) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span> if (i == NB_RETRIES - 1) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span> fail("Waited too much time for delete replication");<a name="line.259"></a>
+<span class="sourceLineNo">260</span> }<a name="line.260"></a>
+<span class="sourceLineNo">261</span> Result res = target.get(get);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> if (res.size() >= 1) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span> LOG.info("Row not deleted");<a name="line.263"></a>
+<span class="sourceLineNo">264</span> } else {<a name="line.264"></a>
+<span class="sourceLineNo">265</span> break;<a name="line.265"></a>
+<span class="sourceLineNo">266</span> }<a name="line.266"></a>
+<span class="sourceLineNo">267</span> Thread.sleep(10 * SLEEP_TIME);<a name="line.267"></a>
+<span class="sourceLineNo">268</span> }<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span> }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>}<a name="line.271"></a>
[07/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
@@ -72,7 +72,7 @@
<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
<span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
<span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
<span class="sourceLineNo">069</span><a name="line.69"></a>
<span class="sourceLineNo">070</span> @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
<span class="sourceLineNo">078</span> @BeforeClass<a name="line.78"></a>
<span class="sourceLineNo">079</span> public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
<span class="sourceLineNo">080</span> TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span> admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span> public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span> // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span> public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> final List<RegionServerThread> rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span> for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span> }<a name="line.103"></a>
-<span class="sourceLineNo">104</span> // Wait for all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span> public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span> return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> }<a name="line.111"></a>
-<span class="sourceLineNo">112</span> }<a name="line.112"></a>
-<span class="sourceLineNo">113</span> return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span> public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.118"></a>
-<span class="sourceLineNo">119</span> for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span> // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span> }<a name="line.141"></a>
-<span class="sourceLineNo">142</span> });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span> @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span> public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span> });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span> // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span> public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span> int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span> admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span> if (admin.getPeersCount() <= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span> Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span> }<a name="line.183"></a>
-<span class="sourceLineNo">184</span> // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span> doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span> public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span> // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span> LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span> });<a name="line.196"></a>
-<span class="sourceLineNo">197</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<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> @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span> public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span> // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span> RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span> byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span> for (int i = 0; i < 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> if (row.length > 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span> Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span> }<a name="line.222"></a>
-<span class="sourceLineNo">223</span> }<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span> null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span> public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span> public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span> return failure;<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> admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span> utility1.deleteTableData(tableName);<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> @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span> //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span> // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span> doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span> public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span> });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span> //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span> //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span> "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<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> @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span> //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span> "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> }<a name="line.297"></a>
+<span class="sourceLineNo">081</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span> public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span> // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> final List<RegionServerThread> rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span> for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span> // Wait for all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span> public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span> for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span> return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> }<a name="line.110"></a>
+<span class="sourceLineNo">111</span> }<a name="line.111"></a>
+<span class="sourceLineNo">112</span> return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span> public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.117"></a>
+<span class="sourceLineNo">118</span> for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span> // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span> @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span> public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<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><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span> public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span> public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<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> doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin.removePeer("testCustomReplicationEndpoint");<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span> int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span> admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span> if (admin.getPeersCount() <= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> }<a name="line.182"></a>
+<span class="sourceLineNo">183</span> // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span> doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span> public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span> // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span> LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span> });<a name="line.195"></a>
+<span class="sourceLineNo">196</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span> }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span> @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span> public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span> final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span> // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span> RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span> byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span> for (int i = 0; i < 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> if (row.length > 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span> null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span> public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<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> @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span> public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span> }<a name="line.242"></a>
+<span class="sourceLineNo">243</span> });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span> utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span> @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span> //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span> doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span> public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span> });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span> //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<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> @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span> //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span> "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span> //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span> "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<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><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span> /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span> allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span> the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> */<a name="line.309"></a>
-<span class="sourceLineNo">310</span> String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span> long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span> String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span> String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span> String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span> long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span> source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span> source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span> source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span> source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span> source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span> source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span> source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span> source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span> verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span> verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span> verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> doPut(connection, row);<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><a name="line.363"></a>
-<span class="sourceLineNo">364</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span> Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span> }<a name="line.369"></a>
-<span class="sourceLineNo">370</span> }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span> private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span> static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> static volatile List<Entry> lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span> @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span> /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span> allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span> the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span> String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span> String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span> long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span> String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span> source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span> source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span> source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span> source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span> source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span> source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span> source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span> source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span> source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span> verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span> verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span> verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span> doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span> }<a name="line.360"></a>
+<span class="sourceLineNo">361</span> }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span> try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span> Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span> put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span> }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span> private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span> return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span> }<a name="line.374"></a>
+<span class="sourceLineNo">375</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span> Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span> static volatile List<Entry> lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span> public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> replicateCount.set(0);<a name="line.391"></a>
<span class="sourceLineNo">392</span> contructedCount.incrementAndGet();<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>
@@ -441,127 +441,131 @@
<span class="sourceLineNo">433</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
<span class="sourceLineNo">434</span> static boolean failedOnce;<a name="line.434"></a>
<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span> }<a name="line.441"></a>
-<span class="sourceLineNo">442</span> return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span> }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span> @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span> failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return new FailingDummyReplicator(entries, ordinal);<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> protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span> private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span> public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span> }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span> @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span> return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span> }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span> @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span> // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span> if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span> } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span> failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span> return new FailingDummyReplicator(entries, ordinal);<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><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span> @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span> public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> return ordinal;<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><a name="line.470"></a>
-<span class="sourceLineNo">471</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span> super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span> }<a name="line.475"></a>
+<span class="sourceLineNo">460</span> protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span> private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span> super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span> this.ordinal = ordinal;<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> @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span> public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span> return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span> }<a name="line.472"></a>
+<span class="sourceLineNo">473</span> }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span> public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span> }<a name="line.480"></a>
-<span class="sourceLineNo">481</span> }<a name="line.481"></a>
-<span class="sourceLineNo">482</span> }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span> static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span> @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span> try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span> // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span> doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span> } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span> return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span> }<a name="line.502"></a>
-<span class="sourceLineNo">503</span> }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span> super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span> }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span> @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span> public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span> @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span> // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span> doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span> return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span> }<a name="line.506"></a>
+<span class="sourceLineNo">507</span> }<a name="line.507"></a>
<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span> @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span> try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span> super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span> doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span> ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span> public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span> @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span> int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> for (int i = size-1; i >= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span> row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> cells.remove(i);<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> return entry;<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> }<a name="line.537"></a>
-<span class="sourceLineNo">538</span> }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span> @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span> public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span> return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span> public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span> return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span> @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span> try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span> doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span> } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span> ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span> return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span> }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span> @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span> public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span> @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (int i = size-1; i >= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span> row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span> cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span> }<a name="line.536"></a>
+<span class="sourceLineNo">537</span> }<a name="line.537"></a>
+<span class="sourceLineNo">538</span> return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> });<a name="line.540"></a>
+<span class="sourceLineNo">541</span> }<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> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span> @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span> public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> return entry;<a name="line.549"></a>
<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span> return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
<span class="sourceLineNo">555</span> }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
[06/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
@@ -72,7 +72,7 @@
<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
<span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
<span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
<span class="sourceLineNo">069</span><a name="line.69"></a>
<span class="sourceLineNo">070</span> @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
<span class="sourceLineNo">078</span> @BeforeClass<a name="line.78"></a>
<span class="sourceLineNo">079</span> public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
<span class="sourceLineNo">080</span> TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span> admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span> public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span> // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span> public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> final List<RegionServerThread> rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span> for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span> }<a name="line.103"></a>
-<span class="sourceLineNo">104</span> // Wait for all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span> public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span> return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> }<a name="line.111"></a>
-<span class="sourceLineNo">112</span> }<a name="line.112"></a>
-<span class="sourceLineNo">113</span> return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span> public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.118"></a>
-<span class="sourceLineNo">119</span> for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span> // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span> }<a name="line.141"></a>
-<span class="sourceLineNo">142</span> });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span> @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span> public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span> });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span> // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span> public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span> int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span> admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span> if (admin.getPeersCount() <= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span> Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span> }<a name="line.183"></a>
-<span class="sourceLineNo">184</span> // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span> doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span> public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span> // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span> LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span> });<a name="line.196"></a>
-<span class="sourceLineNo">197</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<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> @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span> public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span> // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span> RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span> byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span> for (int i = 0; i < 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> if (row.length > 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span> Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span> }<a name="line.222"></a>
-<span class="sourceLineNo">223</span> }<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span> null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span> public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span> public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span> return failure;<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> admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span> utility1.deleteTableData(tableName);<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> @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span> //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span> // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span> doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span> public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span> });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span> //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span> //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span> "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<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> @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span> //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span> "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> }<a name="line.297"></a>
+<span class="sourceLineNo">081</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span> public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span> // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> final List<RegionServerThread> rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span> for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span> // Wait for all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span> public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span> for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span> return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> }<a name="line.110"></a>
+<span class="sourceLineNo">111</span> }<a name="line.111"></a>
+<span class="sourceLineNo">112</span> return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span> public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.117"></a>
+<span class="sourceLineNo">118</span> for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span> // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span> @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span> public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<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><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span> public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span> public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<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> doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin.removePeer("testCustomReplicationEndpoint");<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span> int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span> admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span> if (admin.getPeersCount() <= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> }<a name="line.182"></a>
+<span class="sourceLineNo">183</span> // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span> doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span> public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span> // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span> LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span> });<a name="line.195"></a>
+<span class="sourceLineNo">196</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span> }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span> @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span> public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span> final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span> // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span> RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span> byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span> for (int i = 0; i < 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> if (row.length > 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span> null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span> public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<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> @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span> public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span> }<a name="line.242"></a>
+<span class="sourceLineNo">243</span> });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span> utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span> @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span> //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span> doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span> public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span> });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span> //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<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> @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span> //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span> "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span> //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span> "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<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><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span> /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span> allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span> the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> */<a name="line.309"></a>
-<span class="sourceLineNo">310</span> String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span> long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span> String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span> String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span> String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span> long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span> source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span> source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span> source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span> source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span> source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span> source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span> source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span> source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span> verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span> verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span> verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> doPut(connection, row);<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><a name="line.363"></a>
-<span class="sourceLineNo">364</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span> Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span> }<a name="line.369"></a>
-<span class="sourceLineNo">370</span> }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span> private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span> static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> static volatile List<Entry> lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span> @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span> /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span> allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span> the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span> String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span> String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span> long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span> String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span> source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span> source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span> source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span> source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span> source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span> source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span> source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span> source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span> source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span> verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span> verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span> verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span> doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span> }<a name="line.360"></a>
+<span class="sourceLineNo">361</span> }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span> try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span> Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span> put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span> }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span> private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span> return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span> }<a name="line.374"></a>
+<span class="sourceLineNo">375</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span> Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span> static volatile List<Entry> lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span> public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> replicateCount.set(0);<a name="line.391"></a>
<span class="sourceLineNo">392</span> contructedCount.incrementAndGet();<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>
@@ -441,127 +441,131 @@
<span class="sourceLineNo">433</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
<span class="sourceLineNo">434</span> static boolean failedOnce;<a name="line.434"></a>
<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span> }<a name="line.441"></a>
-<span class="sourceLineNo">442</span> return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span> }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span> @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span> failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return new FailingDummyReplicator(entries, ordinal);<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> protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span> private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span> public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span> }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span> @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span> return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span> }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span> @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span> // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span> if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span> } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span> failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span> return new FailingDummyReplicator(entries, ordinal);<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><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span> @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span> public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> return ordinal;<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><a name="line.470"></a>
-<span class="sourceLineNo">471</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span> super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span> }<a name="line.475"></a>
+<span class="sourceLineNo">460</span> protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span> private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span> super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span> this.ordinal = ordinal;<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> @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span> public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span> return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span> }<a name="line.472"></a>
+<span class="sourceLineNo">473</span> }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span> public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span> }<a name="line.480"></a>
-<span class="sourceLineNo">481</span> }<a name="line.481"></a>
-<span class="sourceLineNo">482</span> }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span> static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span> @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span> try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span> // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span> doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span> } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span> return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span> }<a name="line.502"></a>
-<span class="sourceLineNo">503</span> }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span> super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span> }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span> @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span> public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span> @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span> // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span> doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span> return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span> }<a name="line.506"></a>
+<span class="sourceLineNo">507</span> }<a name="line.507"></a>
<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span> @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span> try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span> super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span> doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span> ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span> public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span> @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span> int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> for (int i = size-1; i >= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span> row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> cells.remove(i);<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> return entry;<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> }<a name="line.537"></a>
-<span class="sourceLineNo">538</span> }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span> @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span> public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span> return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span> public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span> return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span> @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span> try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span> doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span> } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span> ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span> return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span> }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span> @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span> public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span> @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (int i = size-1; i >= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span> row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span> cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span> }<a name="line.536"></a>
+<span class="sourceLineNo">537</span> }<a name="line.537"></a>
+<span class="sourceLineNo">538</span> return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> });<a name="line.540"></a>
+<span class="sourceLineNo">541</span> }<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> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span> @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span> public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> return entry;<a name="line.549"></a>
<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span> return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
<span class="sourceLineNo">555</span> }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
[22/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..6ebf6d8
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestReplicationKillMasterRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="TestReplicationKillMasterRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestReplicationKillMasterRSWithSeparateOldWALs.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/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillMasterRSWithSeparateOldWALs.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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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.replication</div>
+<h2 title="Class TestReplicationKillMasterRSWithSeparateOldWALs" class="title">Class TestReplicationKillMasterRSWithSeparateOldWALs</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication.TestReplicationBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication.TestReplicationKillRS</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs</li>
+</ul>
+</li>
+</ul>
+</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/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#line.31">TestReplicationKillMasterRSWithSeparateOldWALs</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
+<!-- -->
+</a>
+<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#TestReplicationKillMasterRSWithSeparateOldWALs--">TestReplicationKillMasterRSWithSeparateOldWALs</a></span>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#killOneMasterRS--">killOneMasterRS</a></span>()</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationKillRS">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html#loadTableAndKillRS-org.apache.hadoop.hbase.HBaseTestingUtility-">loadTableAndKillRS</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>
, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</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 java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#line.34">CLASS_RULE</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="TestReplicationKillMasterRSWithSeparateOldWALs--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestReplicationKillMasterRSWithSeparateOldWALs</h4>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#line.31">TestReplicationKillMasterRSWithSeparateOldWALs</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="setUpBeforeClass--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBeforeClass</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#line.38">setUpBeforeClass</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="killOneMasterRS--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>killOneMasterRS</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#line.44">killOneMasterRS</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestReplicationKillMasterRSWithSeparateOldWALs.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/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillMasterRSWithSeparateOldWALs.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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillRS.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillRS.html
index 3c00ef4..4be129d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillRS.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillRS.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></dd>
+<dd><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></dd>
</dl>
<hr>
<br>
@@ -152,7 +152,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -204,7 +204,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -327,7 +327,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
index ed2f0ca..98af51b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" target="_top">Frames</a></li>
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
<li class="blockList">
<hr>
<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.35">TestReplicationKillSlaveRS</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.32">TestReplicationKillSlaveRS</a>
extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></pre>
<div class="block">Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster
Do not add other tests in this class.</div>
@@ -151,7 +151,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -201,7 +201,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -230,7 +230,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>CLASS_RULE</h4>
-<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.38">CLASS_RULE</a></pre>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.35">CLASS_RULE</a></pre>
</li>
</ul>
</li>
@@ -247,7 +247,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>TestReplicationKillSlaveRS</h4>
-<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.35">TestReplicationKillSlaveRS</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.32">TestReplicationKillSlaveRS</a>()</pre>
</li>
</ul>
</li>
@@ -264,7 +264,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<ul class="blockListLast">
<li class="blockList">
<h4>killOneSlaveRS</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.42">killOneSlaveRS</a>()
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.39">killOneSlaveRS</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -301,7 +301,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" target="_top">Frames</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..827c68a
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestReplicationKillSlaveRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="TestReplicationKillSlaveRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.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/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillSlaveRSWithSeparateOldWALs.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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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.replication</div>
+<h2 title="Class TestReplicationKillSlaveRSWithSeparateOldWALs" class="title">Class TestReplicationKillSlaveRSWithSeparateOldWALs</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication.TestReplicationBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication.TestReplicationKillRS</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs</li>
+</ul>
+</li>
+</ul>
+</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/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#line.31">TestReplicationKillSlaveRSWithSeparateOldWALs</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!-- -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
+<!-- -->
+</a>
+<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
"../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#TestReplicationKillSlaveRSWithSeparateOldWALs--">TestReplicationKillSlaveRSWithSeparateOldWALs</a></span>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#killOneSlaveRS--">killOneSlaveRS</a></span>()</code> </td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationKillRS">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html#loadTableAndKillRS-org.apache.hadoop.hbase.HBaseTestingUtility-">loadTableAndKillRS</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
+<!-- -->
+</a>
+<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>
, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</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 java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!-- -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#line.34">CLASS_RULE</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="TestReplicationKillSlaveRSWithSeparateOldWALs--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestReplicationKillSlaveRSWithSeparateOldWALs</h4>
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#line.31">TestReplicationKillSlaveRSWithSeparateOldWALs</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="setUpBeforeClass--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBeforeClass</h4>
+<pre>public static void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#line.38">setUpBeforeClass</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="killOneSlaveRS--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>killOneSlaveRS</h4>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#line.44">killOneSlaveRS</a>()
+ throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.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/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillSlaveRSWithSeparateOldWALs.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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html
index b6811ff..dabbc5f 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
@@ -262,7 +262,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
[33/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html b/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
index f3f0a64..8526169 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
@@ -104,27 +104,39 @@
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code> </td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</tbody>
</table>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/package-frame.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/package-frame.html b/apidocs/org/apache/hadoop/hbase/quotas/package-frame.html
index 9956ced..9346f74 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/package-frame.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/package-frame.html
@@ -22,6 +22,7 @@
<ul title="Enums">
<li><a href="QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaScope</a></li>
<li><a href="QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaType</a></li>
+<li><a href="RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException.Type</a></li>
<li><a href="SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">SpaceViolationPolicy</a></li>
<li><a href="ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottleType</a></li>
<li><a href="ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottlingException.Type</a></li>
@@ -29,6 +30,7 @@
<h2 title="Exceptions">Exceptions</h2>
<ul title="Exceptions">
<li><a href="QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaExceededException</a></li>
+<li><a href="RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException</a></li>
<li><a href="SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">SpaceLimitingException</a></li>
<li><a href="ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottlingException</a></li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/package-summary.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/package-summary.html b/apidocs/org/apache/hadoop/hbase/quotas/package-summary.html
index 50b882c..b8e760e 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/package-summary.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/package-summary.html
@@ -126,18 +126,22 @@
</td>
</tr>
<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></td>
<td class="colLast">
<div class="block">Enumeration that represents the action HBase will take when a space quota is violated.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottleType</a></td>
<td class="colLast">
<div class="block">Describe the Throttle Type.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></td>
<td class="colLast"> </td>
</tr>
@@ -159,15 +163,21 @@
</td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></td>
+<td class="colLast">
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></td>
<td class="colLast">
<div class="block">An Exception that is thrown when a space quota is in violation.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></td>
-<td class="colLast">
-<div class="block">Describe the throttling result.</div>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
</td>
</tr>
</tbody>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 57a5a25..8ae00fb 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -103,6 +103,7 @@
</li>
</ul>
</li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a></li>
</ul>
</li>
</ul>
@@ -125,6 +126,7 @@
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/package-use.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/package-use.html b/apidocs/org/apache/hadoop/hbase/quotas/package-use.html
index a91b149..c9c3746 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/package-use.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/package-use.html
@@ -158,6 +158,14 @@
</td>
</tr>
<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html#org.apache.hadoop.hbase.quotas">RpcThrottlingException</a>
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> </td>
+</tr>
+<tr class="altColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/SpaceViolationPolicy.html#org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a>
<div class="block">Enumeration that represents the action HBase will take when a space quota is violated.</div>
</td>
@@ -169,11 +177,15 @@
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html#org.apache.hadoop.hbase.quotas">ThrottlingException</a>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> </td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
+ </td>
</tr>
</tbody>
</table>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html
index f167b63..7cad833 100644
--- a/apidocs/overview-tree.html
+++ b/apidocs/overview-tree.html
@@ -622,6 +622,7 @@
<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RegionOfflineException.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionOfflineException</span></a></li>
</ul>
</li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a></li>
<li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">StoppedRpcClientException</span></a></li>
<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">TableInfoMissingException</span></a></li>
<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">WrongRowIOException</span></a></li>
@@ -918,6 +919,7 @@
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/apidocs/serialized-form.html b/apidocs/serialized-form.html
index 007397a..f6020ff 100644
--- a/apidocs/serialized-form.html
+++ b/apidocs/serialized-form.html
@@ -706,6 +706,26 @@
</a>
<h3>Class <a href="org/apache/hadoop/hbase/quotas/QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.QuotaExceededException</a> extends <a href="org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a> implements Serializable</h3>
</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas.RpcThrottlingException">
+<!-- -->
+</a>
+<h3>Class <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.RpcThrottlingException</a> extends <a href="org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitInterval</h4>
+<pre>long waitInterval</pre>
+</li>
+<li class="blockListLast">
+<h4>type</h4>
+<pre><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
<li class="blockList"><a name="org.apache.hadoop.hbase.quotas.SpaceLimitingException">
<!-- -->
</a>
@@ -741,10 +761,12 @@
<li class="blockList">
<h4>waitInterval</h4>
<pre>long waitInterval</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
<li class="blockListLast">
<h4>type</h4>
<pre><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html b/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..d589905
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
@@ -0,0 +1,203 @@
+<!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 or more contributor license<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * agreements. See the NOTICE file distributed with this work for additional information regarding<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * "License"); you may not use this file except in compliance with the License. You may obtain a<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * law or agreed to in writing, software distributed under the License is distributed on an "AS IS"<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * for the specific language governing permissions and limitations under the License.<a name="line.9"></a>
+<span class="sourceLineNo">010</span> */<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.apache.hadoop.hbase.quotas;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.regex.Matcher;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.regex.Pattern;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.hadoop.util.StringUtils;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Describe the throttling result. TODO: At some point this will be handled on the client side to<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * prevent operation to go on the server if the waitInterval is greater than the one got as result<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * of this exception.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@InterfaceAudience.Public<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class RpcThrottlingException extends HBaseIOException {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span> @InterfaceAudience.Public<a name="line.29"></a>
+<span class="sourceLineNo">030</span> public enum Type {<a name="line.30"></a>
+<span class="sourceLineNo">031</span> NumRequestsExceeded, RequestSizeExceeded, NumReadRequestsExceeded, NumWriteRequestsExceeded,<a name="line.31"></a>
+<span class="sourceLineNo">032</span> WriteSizeExceeded, ReadSizeExceeded,<a name="line.32"></a>
+<span class="sourceLineNo">033</span> }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span> private static final String[] MSG_TYPE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span> new String[] { "number of requests exceeded", "request size limit exceeded",<a name="line.36"></a>
+<span class="sourceLineNo">037</span> "number of read requests exceeded", "number of write requests exceeded",<a name="line.37"></a>
+<span class="sourceLineNo">038</span> "write size limit exceeded", "read size limit exceeded", };<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span> private static final String MSG_WAIT = " - wait ";<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span> private long waitInterval;<a name="line.42"></a>
+<span class="sourceLineNo">043</span> private Type type;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span> public RpcThrottlingException(String msg) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span> super(msg);<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span> // Dirty workaround to get the information after<a name="line.48"></a>
+<span class="sourceLineNo">049</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.49"></a>
+<span class="sourceLineNo">050</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.51"></a>
+<span class="sourceLineNo">052</span> if (index >= 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.53"></a>
+<span class="sourceLineNo">054</span> type = Type.values()[i];<a name="line.54"></a>
+<span class="sourceLineNo">055</span> waitInterval = timeFromString(waitTimeStr);<a name="line.55"></a>
+<span class="sourceLineNo">056</span> break;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> }<a name="line.57"></a>
+<span class="sourceLineNo">058</span> }<a name="line.58"></a>
+<span class="sourceLineNo">059</span> }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span> public RpcThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span> super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">063</span> this.waitInterval = waitInterval;<a name="line.63"></a>
+<span class="sourceLineNo">064</span> this.type = type;<a name="line.64"></a>
+<span class="sourceLineNo">065</span> }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span> public Type getType() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span> return this.type;<a name="line.68"></a>
+<span class="sourceLineNo">069</span> }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span> public long getWaitInterval() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span> return this.waitInterval;<a name="line.72"></a>
+<span class="sourceLineNo">073</span> }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span> public static void throwNumRequestsExceeded(final long waitInterval) throws<a name="line.75"></a>
+<span class="sourceLineNo">076</span> RpcThrottlingException {<a name="line.76"></a>
+<span class="sourceLineNo">077</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<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> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.80"></a>
+<span class="sourceLineNo">081</span> throws RpcThrottlingException {<a name="line.81"></a>
+<span class="sourceLineNo">082</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<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> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.85"></a>
+<span class="sourceLineNo">086</span> throws RpcThrottlingException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.87"></a>
+<span class="sourceLineNo">088</span> }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.90"></a>
+<span class="sourceLineNo">091</span> throws RpcThrottlingException {<a name="line.91"></a>
+<span class="sourceLineNo">092</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.92"></a>
+<span class="sourceLineNo">093</span> }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span> public static void throwWriteSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span> public static void throwReadSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<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> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.103"></a>
+<span class="sourceLineNo">104</span> throws RpcThrottlingException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + StringUtils.formatTime(waitInterval);<a name="line.105"></a>
+<span class="sourceLineNo">106</span> throw new RpcThrottlingException(type, waitInterval, msg);<a name="line.106"></a>
+<span class="sourceLineNo">107</span> }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span> private static long timeFromString(String timeDiff) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span> Pattern[] patterns =<a name="line.110"></a>
+<span class="sourceLineNo">111</span> new Pattern[] { Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.111"></a>
+<span class="sourceLineNo">112</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.112"></a>
+<span class="sourceLineNo">113</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec") };<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> for (int i = 0; i < patterns.length; ++i) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.116"></a>
+<span class="sourceLineNo">117</span> if (m.find()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (i > 0) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> if (i > 1) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.123"></a>
+<span class="sourceLineNo">124</span> }<a name="line.124"></a>
+<span class="sourceLineNo">125</span> return time;<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><a name="line.128"></a>
+<span class="sourceLineNo">129</span> return -1;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html b/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
new file mode 100644
index 0000000..d589905
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
@@ -0,0 +1,203 @@
+<!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 or more contributor license<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * agreements. See the NOTICE file distributed with this work for additional information regarding<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * "License"); you may not use this file except in compliance with the License. You may obtain a<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * law or agreed to in writing, software distributed under the License is distributed on an "AS IS"<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * for the specific language governing permissions and limitations under the License.<a name="line.9"></a>
+<span class="sourceLineNo">010</span> */<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.apache.hadoop.hbase.quotas;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.regex.Matcher;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.regex.Pattern;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.hadoop.util.StringUtils;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Describe the throttling result. TODO: At some point this will be handled on the client side to<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * prevent operation to go on the server if the waitInterval is greater than the one got as result<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * of this exception.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@InterfaceAudience.Public<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class RpcThrottlingException extends HBaseIOException {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span> @InterfaceAudience.Public<a name="line.29"></a>
+<span class="sourceLineNo">030</span> public enum Type {<a name="line.30"></a>
+<span class="sourceLineNo">031</span> NumRequestsExceeded, RequestSizeExceeded, NumReadRequestsExceeded, NumWriteRequestsExceeded,<a name="line.31"></a>
+<span class="sourceLineNo">032</span> WriteSizeExceeded, ReadSizeExceeded,<a name="line.32"></a>
+<span class="sourceLineNo">033</span> }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span> private static final String[] MSG_TYPE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span> new String[] { "number of requests exceeded", "request size limit exceeded",<a name="line.36"></a>
+<span class="sourceLineNo">037</span> "number of read requests exceeded", "number of write requests exceeded",<a name="line.37"></a>
+<span class="sourceLineNo">038</span> "write size limit exceeded", "read size limit exceeded", };<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span> private static final String MSG_WAIT = " - wait ";<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span> private long waitInterval;<a name="line.42"></a>
+<span class="sourceLineNo">043</span> private Type type;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span> public RpcThrottlingException(String msg) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span> super(msg);<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span> // Dirty workaround to get the information after<a name="line.48"></a>
+<span class="sourceLineNo">049</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.49"></a>
+<span class="sourceLineNo">050</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.51"></a>
+<span class="sourceLineNo">052</span> if (index >= 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.53"></a>
+<span class="sourceLineNo">054</span> type = Type.values()[i];<a name="line.54"></a>
+<span class="sourceLineNo">055</span> waitInterval = timeFromString(waitTimeStr);<a name="line.55"></a>
+<span class="sourceLineNo">056</span> break;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> }<a name="line.57"></a>
+<span class="sourceLineNo">058</span> }<a name="line.58"></a>
+<span class="sourceLineNo">059</span> }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span> public RpcThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span> super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">063</span> this.waitInterval = waitInterval;<a name="line.63"></a>
+<span class="sourceLineNo">064</span> this.type = type;<a name="line.64"></a>
+<span class="sourceLineNo">065</span> }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span> public Type getType() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span> return this.type;<a name="line.68"></a>
+<span class="sourceLineNo">069</span> }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span> public long getWaitInterval() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span> return this.waitInterval;<a name="line.72"></a>
+<span class="sourceLineNo">073</span> }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span> public static void throwNumRequestsExceeded(final long waitInterval) throws<a name="line.75"></a>
+<span class="sourceLineNo">076</span> RpcThrottlingException {<a name="line.76"></a>
+<span class="sourceLineNo">077</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<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> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.80"></a>
+<span class="sourceLineNo">081</span> throws RpcThrottlingException {<a name="line.81"></a>
+<span class="sourceLineNo">082</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<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> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.85"></a>
+<span class="sourceLineNo">086</span> throws RpcThrottlingException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.87"></a>
+<span class="sourceLineNo">088</span> }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.90"></a>
+<span class="sourceLineNo">091</span> throws RpcThrottlingException {<a name="line.91"></a>
+<span class="sourceLineNo">092</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.92"></a>
+<span class="sourceLineNo">093</span> }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span> public static void throwWriteSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span> public static void throwReadSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<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> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.103"></a>
+<span class="sourceLineNo">104</span> throws RpcThrottlingException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + StringUtils.formatTime(waitInterval);<a name="line.105"></a>
+<span class="sourceLineNo">106</span> throw new RpcThrottlingException(type, waitInterval, msg);<a name="line.106"></a>
+<span class="sourceLineNo">107</span> }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span> private static long timeFromString(String timeDiff) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span> Pattern[] patterns =<a name="line.110"></a>
+<span class="sourceLineNo">111</span> new Pattern[] { Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.111"></a>
+<span class="sourceLineNo">112</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.112"></a>
+<span class="sourceLineNo">113</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec") };<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> for (int i = 0; i < patterns.length; ++i) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.116"></a>
+<span class="sourceLineNo">117</span> if (m.find()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (i > 0) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> if (i > 1) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.123"></a>
+<span class="sourceLineNo">124</span> }<a name="line.124"></a>
+<span class="sourceLineNo">125</span> return time;<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><a name="line.128"></a>
+<span class="sourceLineNo">129</span> return -1;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html b/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
index 985e2ef..c27a837 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
@@ -37,145 +37,148 @@
<span class="sourceLineNo">029</span> * TODO: At some point this will be handled on the client side to prevent<a name="line.29"></a>
<span class="sourceLineNo">030</span> * operation to go on the server if the waitInterval is grater than the one got<a name="line.30"></a>
<span class="sourceLineNo">031</span> * as result of this exception.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceAudience.Public<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public class ThrottlingException extends QuotaExceededException {<a name="line.34"></a>
-<span class="sourceLineNo">035</span> private static final long serialVersionUID = 1406576492085155743L;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span> @InterfaceAudience.Public<a name="line.37"></a>
-<span class="sourceLineNo">038</span> public enum Type {<a name="line.38"></a>
-<span class="sourceLineNo">039</span> NumRequestsExceeded,<a name="line.39"></a>
-<span class="sourceLineNo">040</span> RequestSizeExceeded,<a name="line.40"></a>
-<span class="sourceLineNo">041</span> NumReadRequestsExceeded,<a name="line.41"></a>
-<span class="sourceLineNo">042</span> NumWriteRequestsExceeded,<a name="line.42"></a>
-<span class="sourceLineNo">043</span> WriteSizeExceeded,<a name="line.43"></a>
-<span class="sourceLineNo">044</span> ReadSizeExceeded,<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> private static final String[] MSG_TYPE = new String[] {<a name="line.47"></a>
-<span class="sourceLineNo">048</span> "number of requests exceeded",<a name="line.48"></a>
-<span class="sourceLineNo">049</span> "request size limit exceeded",<a name="line.49"></a>
-<span class="sourceLineNo">050</span> "number of read requests exceeded",<a name="line.50"></a>
-<span class="sourceLineNo">051</span> "number of write requests exceeded",<a name="line.51"></a>
-<span class="sourceLineNo">052</span> "write size limit exceeded",<a name="line.52"></a>
-<span class="sourceLineNo">053</span> "read size limit exceeded",<a name="line.53"></a>
-<span class="sourceLineNo">054</span> };<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span> private static final String MSG_WAIT = " - wait ";<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span> private long waitInterval;<a name="line.58"></a>
-<span class="sourceLineNo">059</span> private Type type;<a name="line.59"></a>
+<span class="sourceLineNo">032</span> *<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * @deprecated replaced by {@link RpcThrottlingException} since hbase-2.0.0.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>@Deprecated<a name="line.35"></a>
+<span class="sourceLineNo">036</span>@InterfaceAudience.Public<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public class ThrottlingException extends QuotaExceededException {<a name="line.37"></a>
+<span class="sourceLineNo">038</span> private static final long serialVersionUID = 1406576492085155743L;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span> @InterfaceAudience.Public<a name="line.40"></a>
+<span class="sourceLineNo">041</span> public enum Type {<a name="line.41"></a>
+<span class="sourceLineNo">042</span> NumRequestsExceeded,<a name="line.42"></a>
+<span class="sourceLineNo">043</span> RequestSizeExceeded,<a name="line.43"></a>
+<span class="sourceLineNo">044</span> NumReadRequestsExceeded,<a name="line.44"></a>
+<span class="sourceLineNo">045</span> NumWriteRequestsExceeded,<a name="line.45"></a>
+<span class="sourceLineNo">046</span> WriteSizeExceeded,<a name="line.46"></a>
+<span class="sourceLineNo">047</span> ReadSizeExceeded,<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> private static final String[] MSG_TYPE = new String[] {<a name="line.50"></a>
+<span class="sourceLineNo">051</span> "number of requests exceeded",<a name="line.51"></a>
+<span class="sourceLineNo">052</span> "request size limit exceeded",<a name="line.52"></a>
+<span class="sourceLineNo">053</span> "number of read requests exceeded",<a name="line.53"></a>
+<span class="sourceLineNo">054</span> "number of write requests exceeded",<a name="line.54"></a>
+<span class="sourceLineNo">055</span> "write size limit exceeded",<a name="line.55"></a>
+<span class="sourceLineNo">056</span> "read size limit exceeded",<a name="line.56"></a>
+<span class="sourceLineNo">057</span> };<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span> private static final String MSG_WAIT = " - wait ";<a name="line.59"></a>
<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span> public ThrottlingException(String msg) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span> super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">061</span> private long waitInterval;<a name="line.61"></a>
+<span class="sourceLineNo">062</span> private Type type;<a name="line.62"></a>
<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span> // Dirty workaround to get the information after<a name="line.64"></a>
-<span class="sourceLineNo">065</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.65"></a>
-<span class="sourceLineNo">066</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.67"></a>
-<span class="sourceLineNo">068</span> if (index >= 0) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.69"></a>
-<span class="sourceLineNo">070</span> type = Type.values()[i];<a name="line.70"></a>
-<span class="sourceLineNo">071</span> waitInterval = timeFromString(waitTimeStr);<a name="line.71"></a>
-<span class="sourceLineNo">072</span> break;<a name="line.72"></a>
-<span class="sourceLineNo">073</span> }<a name="line.73"></a>
-<span class="sourceLineNo">074</span> }<a name="line.74"></a>
-<span class="sourceLineNo">075</span> }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span> public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span> super(msg);<a name="line.78"></a>
-<span class="sourceLineNo">079</span> this.waitInterval = waitInterval;<a name="line.79"></a>
-<span class="sourceLineNo">080</span> this.type = type;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span> public Type getType() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span> return this.type;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> }<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span> public long getWaitInterval() {<a name="line.87"></a>
-<span class="sourceLineNo">088</span> return this.waitInterval;<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> public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.91"></a>
-<span class="sourceLineNo">092</span> throws ThrottlingException {<a name="line.92"></a>
-<span class="sourceLineNo">093</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.93"></a>
-<span class="sourceLineNo">094</span> }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.96"></a>
-<span class="sourceLineNo">097</span> throws ThrottlingException {<a name="line.97"></a>
-<span class="sourceLineNo">098</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.98"></a>
-<span class="sourceLineNo">099</span> }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.101"></a>
-<span class="sourceLineNo">102</span> throws ThrottlingException {<a name="line.102"></a>
-<span class="sourceLineNo">103</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.103"></a>
-<span class="sourceLineNo">104</span> }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.106"></a>
-<span class="sourceLineNo">107</span> throws ThrottlingException {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.108"></a>
-<span class="sourceLineNo">109</span> }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span> public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.111"></a>
-<span class="sourceLineNo">112</span> throws ThrottlingException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> public static void throwReadSizeExceeded(final long waitInterval)<a name="line.116"></a>
-<span class="sourceLineNo">117</span> throws ThrottlingException {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.118"></a>
-<span class="sourceLineNo">119</span> }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.121"></a>
-<span class="sourceLineNo">122</span> throws ThrottlingException {<a name="line.122"></a>
-<span class="sourceLineNo">123</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.123"></a>
-<span class="sourceLineNo">124</span> throw new ThrottlingException(type, waitInterval, msg);<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> public static String formatTime(long timeDiff) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span> StringBuilder buf = new StringBuilder();<a name="line.128"></a>
-<span class="sourceLineNo">129</span> long hours = timeDiff / (60*60*1000);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> long rem = (timeDiff % (60*60*1000));<a name="line.130"></a>
-<span class="sourceLineNo">131</span> long minutes = rem / (60*1000);<a name="line.131"></a>
-<span class="sourceLineNo">132</span> rem = rem % (60*1000);<a name="line.132"></a>
-<span class="sourceLineNo">133</span> float seconds = rem / 1000.0f;<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span> if (hours != 0){<a name="line.135"></a>
-<span class="sourceLineNo">136</span> buf.append(hours);<a name="line.136"></a>
-<span class="sourceLineNo">137</span> buf.append("hrs, ");<a name="line.137"></a>
-<span class="sourceLineNo">138</span> }<a name="line.138"></a>
-<span class="sourceLineNo">139</span> if (minutes != 0){<a name="line.139"></a>
-<span class="sourceLineNo">140</span> buf.append(minutes);<a name="line.140"></a>
-<span class="sourceLineNo">141</span> buf.append("mins, ");<a name="line.141"></a>
-<span class="sourceLineNo">142</span> }<a name="line.142"></a>
-<span class="sourceLineNo">143</span> buf.append(String.format("%.2fsec", seconds));<a name="line.143"></a>
-<span class="sourceLineNo">144</span> return buf.toString();<a name="line.144"></a>
-<span class="sourceLineNo">145</span> }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span> private static long timeFromString(String timeDiff) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span> Pattern[] patterns = new Pattern[] {<a name="line.148"></a>
-<span class="sourceLineNo">149</span> Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.149"></a>
-<span class="sourceLineNo">150</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.150"></a>
-<span class="sourceLineNo">151</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<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> for (int i = 0; i < patterns.length; ++i) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.155"></a>
-<span class="sourceLineNo">156</span> if (m.find()) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.157"></a>
-<span class="sourceLineNo">158</span> if (i > 0) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> if (i > 1) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.162"></a>
+<span class="sourceLineNo">064</span> public ThrottlingException(String msg) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span> super(msg);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span> // Dirty workaround to get the information after<a name="line.67"></a>
+<span class="sourceLineNo">068</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.68"></a>
+<span class="sourceLineNo">069</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span> if (index >= 0) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.72"></a>
+<span class="sourceLineNo">073</span> type = Type.values()[i];<a name="line.73"></a>
+<span class="sourceLineNo">074</span> waitInterval = timeFromString(waitTimeStr);<a name="line.74"></a>
+<span class="sourceLineNo">075</span> break;<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> }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span> public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span> super(msg);<a name="line.81"></a>
+<span class="sourceLineNo">082</span> this.waitInterval = waitInterval;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> this.type = type;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span> public Type getType() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span> return this.type;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span> public long getWaitInterval() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span> return this.waitInterval;<a name="line.91"></a>
+<span class="sourceLineNo">092</span> }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span> public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.94"></a>
+<span class="sourceLineNo">095</span> throws ThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.99"></a>
+<span class="sourceLineNo">100</span> throws ThrottlingException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.104"></a>
+<span class="sourceLineNo">105</span> throws ThrottlingException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.106"></a>
+<span class="sourceLineNo">107</span> }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.109"></a>
+<span class="sourceLineNo">110</span> throws ThrottlingException {<a name="line.110"></a>
+<span class="sourceLineNo">111</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span> public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.114"></a>
+<span class="sourceLineNo">115</span> throws ThrottlingException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<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> public static void throwReadSizeExceeded(final long waitInterval)<a name="line.119"></a>
+<span class="sourceLineNo">120</span> throws ThrottlingException {<a name="line.120"></a>
+<span class="sourceLineNo">121</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.124"></a>
+<span class="sourceLineNo">125</span> throws ThrottlingException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> throw new ThrottlingException(type, waitInterval, msg);<a name="line.127"></a>
+<span class="sourceLineNo">128</span> }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span> public static String formatTime(long timeDiff) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span> StringBuilder buf = new StringBuilder();<a name="line.131"></a>
+<span class="sourceLineNo">132</span> long hours = timeDiff / (60*60*1000);<a name="line.132"></a>
+<span class="sourceLineNo">133</span> long rem = (timeDiff % (60*60*1000));<a name="line.133"></a>
+<span class="sourceLineNo">134</span> long minutes = rem / (60*1000);<a name="line.134"></a>
+<span class="sourceLineNo">135</span> rem = rem % (60*1000);<a name="line.135"></a>
+<span class="sourceLineNo">136</span> float seconds = rem / 1000.0f;<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span> if (hours != 0){<a name="line.138"></a>
+<span class="sourceLineNo">139</span> buf.append(hours);<a name="line.139"></a>
+<span class="sourceLineNo">140</span> buf.append("hrs, ");<a name="line.140"></a>
+<span class="sourceLineNo">141</span> }<a name="line.141"></a>
+<span class="sourceLineNo">142</span> if (minutes != 0){<a name="line.142"></a>
+<span class="sourceLineNo">143</span> buf.append(minutes);<a name="line.143"></a>
+<span class="sourceLineNo">144</span> buf.append("mins, ");<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span> buf.append(String.format("%.2fsec", seconds));<a name="line.146"></a>
+<span class="sourceLineNo">147</span> return buf.toString();<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> private static long timeFromString(String timeDiff) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Pattern[] patterns = new Pattern[] {<a name="line.151"></a>
+<span class="sourceLineNo">152</span> Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.152"></a>
+<span class="sourceLineNo">153</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<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> for (int i = 0; i < patterns.length; ++i) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.158"></a>
+<span class="sourceLineNo">159</span> if (m.find()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.160"></a>
+<span class="sourceLineNo">161</span> if (i > 0) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.162"></a>
<span class="sourceLineNo">163</span> }<a name="line.163"></a>
-<span class="sourceLineNo">164</span> return time;<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><a name="line.167"></a>
-<span class="sourceLineNo">168</span> return -1;<a name="line.168"></a>
-<span class="sourceLineNo">169</span> }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>}<a name="line.170"></a>
+<span class="sourceLineNo">164</span> if (i > 1) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> }<a name="line.166"></a>
+<span class="sourceLineNo">167</span> return time;<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><a name="line.170"></a>
+<span class="sourceLineNo">171</span> return -1;<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>
[26/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index f47dad6..f16b9ea 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Licenses</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -491,7 +491,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 3f0eb24..58fc8e7 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Mailing Lists</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -341,7 +341,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index afa4e31..490da77 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Apache HBase (TM) Metrics
@@ -459,7 +459,7 @@ export HBASE_REGIONSERVER_OPTS="$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index 0bfa6c1..0c1f0e9 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Old Apache HBase (TM) News
@@ -440,7 +440,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index 21d4a60..f723ad2 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Plugin Management</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -440,7 +440,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 0c1021f..e7216c9 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Plugins</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -375,7 +375,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 3e27cfe..5eae55b 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Powered By Apache HBase™</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -769,7 +769,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 93cc9fb..49e2dff 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Information</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -335,7 +335,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index bcb86c8..be01c4a 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Generated Reports</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -305,7 +305,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index f2750cd..90c835b 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Summary</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -331,7 +331,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index eeb44ed..068d457 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Running Apache HBase (TM) in pseudo-distributed mode
@@ -308,7 +308,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 68e13f6..795adb9 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Apache HBase (TM) Replication
@@ -303,7 +303,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 542f1e8..5a8ef50 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Other Apache HBase (TM) Resources</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -331,7 +331,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index a6b6fc3..f8acca2 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Source Code Management</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -299,7 +299,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index d3534bb..73c64ba 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Apache HBase™ Sponsors</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -333,7 +333,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 7f5279c..e76d586 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Supporting Projects</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -520,7 +520,7 @@ under the License. -->
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index f5d2628..a707cb7 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Project Team</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -730,7 +730,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index fdb2b9c..b514e7b 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -1802,8 +1802,10 @@
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillMasterRSCompressed</a></li>
<li><a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html" title="class in org.apache.hadoop.hbase.replication.multiwal" target="classFrame">TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL</a></li>
<li><a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html" title="class in org.apache.hadoop.hbase.replication.multiwal" target="classFrame">TestReplicationKillMasterRSCompressedWithMultipleWAL</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillMasterRSWithSeparateOldWALs</a></li>
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillRS</a></li>
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillSlaveRS</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillSlaveRSWithSeparateOldWALs</a></li>
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationPeerConfig</a></li>
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationProcedureRetry</a></li>
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.MockHMaster.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationProcedureRetry.MockHMaster</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index b19abf8..8152b2a 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -1802,8 +1802,10 @@
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSCompressed</a></li>
<li><a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html" title="class in org.apache.hadoop.hbase.replication.multiwal">TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL</a></li>
<li><a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html" title="class in org.apache.hadoop.hbase.replication.multiwal">TestReplicationKillMasterRSCompressedWithMultipleWAL</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></li>
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></li>
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></li>
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationPeerConfig</a></li>
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationProcedureRetry</a></li>
<li><a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.MockHMaster.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationProcedureRetry.MockHMaster</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/constant-values.html b/testdevapidocs/constant-values.html
index f88ba74..8608019 100644
--- a/testdevapidocs/constant-values.html
+++ b/testdevapidocs/constant-values.html
@@ -10723,6 +10723,13 @@
<td class="colLast"><code>1000</code></td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.replication.TestReplicationBase.PEER_ID2">
+<!-- -->
+</a><code>protected static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a></code></td>
+<td class="colLast"><code>"2"</code></td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><a name="org.apache.hadoop.hbase.replication.TestReplicationBase.SLEEP_TIME">
<!-- -->
</a><code>protected static final long</code></td>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 7191316..f5d045a 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -5759,10 +5759,14 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSCompressed</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationPeerConfig</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationProcedureRetry</a></dt>
@@ -21337,6 +21341,14 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.SimpleClient.html#isSending--">isSending()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.SimpleClient.html" title="class in org.apache.hadoop.hbase.ipc">IntegrationTestRpcClient.SimpleClient</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#isSerialPeer--">isSerialPeer()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html" title="class in org.apache.hadoop.hbase.replication">TestNamespaceReplication</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#isSerialPeer--">isSerialPeer()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationChangingPeerRegionservers</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#isSerialPeer--">isSerialPeer()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSmallTests</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MockNoopMasterServices.html#isServerCrashProcessingEnabled--">isServerCrashProcessingEnabled()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MockNoopMasterServices.html" title="class in org.apache.hadoop.hbase.master">MockNoopMasterServices</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.html#isServerHoldingMeta-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.ServerName-">isServerHoldingMeta(HBaseTestingUtility, ServerName)</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentTestingUtil</a></dt>
@@ -21889,8 +21901,12 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#killOneMasterRS--">killOneMasterRS()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRS</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#killOneMasterRS--">killOneMasterRS()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#killOneSlaveRS--">killOneSlaveRS()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#killOneSlaveRS--">killOneSlaveRS()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.KillOrStart.html#KillOrStart--">KillOrStart()</a></span> - Constructor for enum org.apache.hadoop.hbase.chaos.actions.<a href="org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.KillOrStart.html" title="enum in org.apache.hadoop.hbase.chaos.actions">RollingBatchRestartRsAction.KillOrStart</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ProcessBasedLocalHBaseCluster.html#killProcess-int-">killProcess(int)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ProcessBasedLocalHBaseCluster.html" title="class in org.apache.hadoop.hbase.util">ProcessBasedLocalHBaseCluster</a></dt>
@@ -28210,6 +28226,12 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.html" title="class in org.apache.hadoop.hbase.regionserver">TestSeekOptimizations</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html" title="class in org.apache.hadoop.hbase.replication">TestNamespaceReplication</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationChangingPeerRegionservers</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSmallTests</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/TestSchemaResource.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/TestSchemaResource.html" title="class in org.apache.hadoop.hbase.rest">TestSchemaResource</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/TestSecureIPC.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.security.<a href="org/apache/hadoop/hbase/security/TestSecureIPC.html" title="class in org.apache.hadoop.hbase.security">TestSecureIPC</a></dt>
@@ -28254,8 +28276,6 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestShutdownWhileWALBroken.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestShutdownWhileWALBroken.html" title="class in org.apache.hadoop.hbase.regionserver">TestShutdownWhileWALBroken</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
-<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/types/TestStruct.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.types.<a href="org/apache/hadoop/hbase/types/TestStruct.html" title="class in org.apache.hadoop.hbase.types">TestStruct</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockRecordBuilder.html#parent--">parent()</a></span> - Method in class org.apache.hadoop.hbase.test.<a href="org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockRecordBuilder.html" title="class in org.apache.hadoop.hbase.test">MetricsAssertHelperImpl.MockRecordBuilder</a></dt>
@@ -28370,12 +28390,16 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestVerifyReplication.html#PEER_ID">PEER_ID</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestVerifyReplication.html" title="class in org.apache.hadoop.hbase.replication">TestVerifyReplication</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/SerialReplicationTestBase.LocalReplicationEndpoint.html#PEER_UUID">PEER_UUID</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/SerialReplicationTestBase.LocalReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.replication">SerialReplicationTestBase.LocalReplicationEndpoint</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationSourceDummy.html#peerClusterId">peerClusterId</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationSourceDummy.html" title="class in org.apache.hadoop.hbase.replication">ReplicationSourceDummy</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#peerConfigUpdated-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">peerConfigUpdated(ReplicationPeerConfig)</a></span> - Method in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#peerExist-java.lang.String-">peerExist(String)</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithTwoDifferentZKClusters.html#peerId">peerId</a></span> - Static variable in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithTwoDifferentZKClusters.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdminWithTwoDifferentZKClusters</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestReplicationHFileCleaner.html#peerId">peerId</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestReplicationHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestReplicationHFileCleaner</a></dt>
@@ -34714,8 +34738,6 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.html#sendTransitionReport-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode-">sendTransitionReport(ServerName, HBaseProtos.RegionInfo, RegionServerStatusProtos.RegionStateTransition.TransitionCode)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">TestAssignmentManager</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
-<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/StripeCompactionsPerformanceEvaluation.html#SEQ_SHARDS_PER_SERVER_KEY">SEQ_SHARDS_PER_SERVER_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/StripeCompactionsPerformanceEvaluation.html" title="class in org.apache.hadoop.hbase">StripeCompactionsPerformanceEvaluation</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.TestSequentialProcedure.html#seqid">seqid</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.TestSequentialProcedure.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">TestWALProcedureStore.TestSequentialProcedure</a></dt>
@@ -34794,6 +34816,12 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestAccessController.TestTableDDLProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData(ProcedureStateSerializer)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestAccessController.TestTableDDLProcedure.html" title="class in org.apache.hadoop.hbase.security.access">TestAccessController.TestTableDDLProcedure</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#serialPeer">serialPeer</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html" title="class in org.apache.hadoop.hbase.replication">TestNamespaceReplication</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#serialPeer">serialPeer</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationChangingPeerRegionservers</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#serialPeer">serialPeer</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSmallTests</a></dt>
+<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/replication/SerialReplicationTestBase.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SerialReplicationTestBase</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
<dd>
<div class="block">Base class for testing serial replication.</div>
@@ -36355,6 +36383,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.html#setupAndCreateCleaner-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.Stoppable-">setupAndCreateCleaner(Configuration, FileSystem, Path, Stoppable)</a></span> - Method in class org.apache.hadoop.hbase.backup.example.<a href="org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.html" title="class in org.apache.hadoop.hbase.backup.example">TestZooKeeperTableArchiveClient</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestExportSnapshot.html#setUpBaseConf-org.apache.hadoop.conf.Configuration-">setUpBaseConf(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestExportSnapshot.html" title="class in org.apache.hadoop.hbase.snapshot">TestExportSnapshot</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestExportSnapshotNoCluster.html#setUpBaseConf-org.apache.hadoop.conf.Configuration-">setUpBaseConf(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestExportSnapshotNoCluster.html" title="class in org.apache.hadoop.hbase.snapshot">TestExportSnapshotNoCluster</a></dt>
@@ -36767,6 +36797,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSCompressed</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationSource.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSource.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSource</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationStateZKImpl.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationStateZKImpl.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationStateZKImpl</a></dt>
@@ -41644,6 +41678,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestZKReplicationQueueStorage.html#tearDownAfterTest--">tearDownAfterTest()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestZKReplicationQueueStorage.html" title="class in org.apache.hadoop.hbase.replication">TestZKReplicationQueueStorage</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#tearDownBase--">tearDownBase()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSyncUpTool</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.html#tearDownClass--">tearDownClass()</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">TestDefaultMemStore</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientPushback.html#teardownCluster--">teardownCluster()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientPushback.html" title="class in org.apache.hadoop.hbase.client">TestClientPushback</a></dt>
@@ -53752,6 +53790,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/TestPassCustomCellViaRegionObserver.html#testMultiPut--">testMultiPut()</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/TestPassCustomCellViaRegionObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">TestPassCustomCellViaRegionObserver</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testMultiQuotaThrottling--">testMultiQuotaThrottling()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html" title="class in org.apache.hadoop.hbase.quotas">TestQuotaAdmin</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocator.html#testMultiRegionTable--">testMultiRegionTable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocator.html" title="class in org.apache.hadoop.hbase.client">TestAsyncNonMetaRegionLocator</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TestTableMapReduceBase.html#testMultiRegionTable--">testMultiRegionTable()</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TestTableMapReduceBase.html" title="class in org.apache.hadoop.hbase.mapreduce">TestTableMapReduceBase</a></dt>
@@ -57323,6 +57363,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html#TestReplicationKillMasterRSCompressedWithMultipleWAL--">TestReplicationKillMasterRSCompressedWithMultipleWAL()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.multiwal.<a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html" title="class in org.apache.hadoop.hbase.replication.multiwal">TestReplicationKillMasterRSCompressedWithMultipleWAL</a></dt>
<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillMasterRSWithSeparateOldWALs</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#TestReplicationKillMasterRSWithSeparateOldWALs--">TestReplicationKillMasterRSWithSeparateOldWALs()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></dt>
+<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillRS</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html#TestReplicationKillRS--">TestReplicationKillRS()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></dt>
@@ -57334,6 +57378,10 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#TestReplicationKillSlaveRS--">TestReplicationKillSlaveRS()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></dt>
<dd> </dd>
+<dt><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillSlaveRSWithSeparateOldWALs</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#TestReplicationKillSlaveRSWithSeparateOldWALs--">TestReplicationKillSlaveRSWithSeparateOldWALs()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></dt>
+<dd> </dd>
<dt><a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationPeerConfig</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html#TestReplicationPeerConfig--">TestReplicationPeerConfig()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationPeerConfig</a></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
index 2edbeb0..da7d417 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
@@ -5125,12 +5125,20 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestReplicationSmallTests.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+<td class="colLast"><span class="typeNameLabel">TestReplicationKillMasterRSWithSeparateOldWALs.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestReplicationSmallTests.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
<td class="colLast"><span class="typeNameLabel">TestReplicationWALEntryFilters.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationWALEntryFilters.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestReplicationKillSlaveRSWithSeparateOldWALs.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
+</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
<td class="colLast"><span class="typeNameLabel">TestPerTableCFReplication.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestPerTableCFReplication.html#CLASS_RULE">CLASS_RULE</a></span></code> </td>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html b/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
index b8e7d6e..b178f95 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.263">TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint</a>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.269">TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint</a>
extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
</li>
</ul>
@@ -293,7 +293,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>calledBack</h4>
-<pre>private static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.264">calledBack</a></pre>
+<pre>private static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.270">calledBack</a></pre>
</li>
</ul>
</li>
@@ -310,7 +310,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>TestUpdatableReplicationEndpoint</h4>
-<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.263">TestUpdatableReplicationEndpoint</a>()</pre>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.269">TestUpdatableReplicationEndpoint</a>()</pre>
</li>
</ul>
</li>
@@ -327,7 +327,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>hasCalledBack</h4>
-<pre>public static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.265">hasCalledBack</a>()</pre>
+<pre>public static boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.271">hasCalledBack</a>()</pre>
</li>
</ul>
<a name="peerConfigUpdated-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">
@@ -336,7 +336,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>peerConfigUpdated</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.269">peerConfigUpdated</a>(org.apache.hadoop.hbase.replication.ReplicationPeerConfig rpc)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.275">peerConfigUpdated</a>(org.apache.hadoop.hbase.replication.ReplicationPeerConfig rpc)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>peerConfigUpdated</code> in interface <code>org.apache.hadoop.hbase.replication.ReplicationPeerConfigListener</code></dd>
@@ -351,7 +351,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.275">start</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.281">start</a>()</pre>
</li>
</ul>
<a name="stop--">
@@ -360,7 +360,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.280">stop</a>()</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.286">stop</a>()</pre>
</li>
</ul>
<a name="doStart--">
@@ -369,7 +369,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>doStart</h4>
-<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.285">doStart</a>()</pre>
+<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.291">doStart</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>doStart</code> in class <code>org.apache.hbase.thirdparty.com.google.common.util.concurrent.AbstractService</code></dd>
@@ -382,7 +382,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>doStop</h4>
-<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.290">doStop</a>()</pre>
+<pre>protected void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.296">doStop</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>doStop</code> in class <code>org.apache.hbase.thirdparty.com.google.common.util.concurrent.AbstractService</code></dd>
@@ -395,7 +395,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockList">
<li class="blockList">
<h4>getPeerUUID</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.296">getPeerUUID</a>()</pre>
+<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.302">getPeerUUID</a>()</pre>
</li>
</ul>
<a name="replicate-org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext-">
@@ -404,7 +404,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
<ul class="blockListLast">
<li class="blockList">
<h4>replicate</h4>
-<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.301">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext replicateContext)</pre>
+<pre>public boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.307">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext replicateContext)</pre>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html b/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
index d2eca19..8d648cd 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
@@ -188,7 +188,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Fields inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
</ul>
</li>
</ul>
@@ -279,7 +279,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-i
nt-int-">waitForReplication</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -438,7 +438,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<ul class="blockList">
<li class="blockList">
<h4>testEnableReplicationWhenSlaveClusterDoesntHaveTable</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.108">testEnableReplicationWhenSlaveClusterDoesntHaveTable</a>()
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.109">testEnableReplicationWhenSlaveClusterDoesntHaveTable</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -452,7 +452,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<ul class="blockList">
<li class="blockList">
<h4>testEnableReplicationWhenReplicationNotEnabled</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.118">testEnableReplicationWhenReplicationNotEnabled</a>()
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.119">testEnableReplicationWhenReplicationNotEnabled</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -466,7 +466,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<ul class="blockList">
<li class="blockList">
<h4>testEnableReplicationWhenTableDescriptorIsNotSameInClusters</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.139">testEnableReplicationWhenTableDescriptorIsNotSameInClusters</a>()
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.140">testEnableReplicationWhenTableDescriptorIsNotSameInClusters</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -480,7 +480,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<ul class="blockList">
<li class="blockList">
<h4>testDisableAndEnableReplication</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.164">testDisableAndEnableReplication</a>()
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.168">testDisableAndEnableReplication</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -494,7 +494,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<ul class="blockList">
<li class="blockList">
<h4>testDisableReplicationForNonExistingTable</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.178">testDisableReplicationForNonExistingTable</a>()
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.182">testDisableReplicationForNonExistingTable</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -508,7 +508,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<ul class="blockList">
<li class="blockList">
<h4>testEnableReplicationForNonExistingTable</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.183">testEnableReplicationForNonExistingTable</a>()
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.187">testEnableReplicationForNonExistingTable</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -522,7 +522,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<ul class="blockList">
<li class="blockList">
<h4>testDisableReplicationWhenTableNameAsNull</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.188">testDisableReplicationWhenTableNameAsNull</a>()
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.192">testDisableReplicationWhenTableNameAsNull</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -536,7 +536,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<ul class="blockList">
<li class="blockList">
<h4>testEnableReplicationWhenTableNameAsNull</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.193">testEnableReplicationWhenTableNameAsNull</a>()
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.197">testEnableReplicationWhenTableNameAsNull</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -550,7 +550,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<ul class="blockList">
<li class="blockList">
<h4>testEnableReplicationForExplicitSetTableCfs</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.202">testEnableReplicationForExplicitSetTableCfs</a>()
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.206">testEnableReplicationForExplicitSetTableCfs</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
@@ -564,7 +564,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
<ul class="blockListLast">
<li class="blockList">
<h4>testReplicationPeerConfigUpdateCallback</h4>
-<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.243">testReplicationPeerConfigUpdateCallback</a>()
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.247">testReplicationPeerConfigUpdateCallback</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index ec56445..4837d80 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -158,8 +158,8 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
</ul>
</li>
</ul>
[27/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..d589905
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
@@ -0,0 +1,203 @@
+<!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 or more contributor license<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * agreements. See the NOTICE file distributed with this work for additional information regarding<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * "License"); you may not use this file except in compliance with the License. You may obtain a<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * law or agreed to in writing, software distributed under the License is distributed on an "AS IS"<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * for the specific language governing permissions and limitations under the License.<a name="line.9"></a>
+<span class="sourceLineNo">010</span> */<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.apache.hadoop.hbase.quotas;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.regex.Matcher;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.regex.Pattern;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.hadoop.util.StringUtils;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Describe the throttling result. TODO: At some point this will be handled on the client side to<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * prevent operation to go on the server if the waitInterval is greater than the one got as result<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * of this exception.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@InterfaceAudience.Public<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class RpcThrottlingException extends HBaseIOException {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span> @InterfaceAudience.Public<a name="line.29"></a>
+<span class="sourceLineNo">030</span> public enum Type {<a name="line.30"></a>
+<span class="sourceLineNo">031</span> NumRequestsExceeded, RequestSizeExceeded, NumReadRequestsExceeded, NumWriteRequestsExceeded,<a name="line.31"></a>
+<span class="sourceLineNo">032</span> WriteSizeExceeded, ReadSizeExceeded,<a name="line.32"></a>
+<span class="sourceLineNo">033</span> }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span> private static final String[] MSG_TYPE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span> new String[] { "number of requests exceeded", "request size limit exceeded",<a name="line.36"></a>
+<span class="sourceLineNo">037</span> "number of read requests exceeded", "number of write requests exceeded",<a name="line.37"></a>
+<span class="sourceLineNo">038</span> "write size limit exceeded", "read size limit exceeded", };<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span> private static final String MSG_WAIT = " - wait ";<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span> private long waitInterval;<a name="line.42"></a>
+<span class="sourceLineNo">043</span> private Type type;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span> public RpcThrottlingException(String msg) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span> super(msg);<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span> // Dirty workaround to get the information after<a name="line.48"></a>
+<span class="sourceLineNo">049</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.49"></a>
+<span class="sourceLineNo">050</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.51"></a>
+<span class="sourceLineNo">052</span> if (index >= 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.53"></a>
+<span class="sourceLineNo">054</span> type = Type.values()[i];<a name="line.54"></a>
+<span class="sourceLineNo">055</span> waitInterval = timeFromString(waitTimeStr);<a name="line.55"></a>
+<span class="sourceLineNo">056</span> break;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> }<a name="line.57"></a>
+<span class="sourceLineNo">058</span> }<a name="line.58"></a>
+<span class="sourceLineNo">059</span> }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span> public RpcThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span> super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">063</span> this.waitInterval = waitInterval;<a name="line.63"></a>
+<span class="sourceLineNo">064</span> this.type = type;<a name="line.64"></a>
+<span class="sourceLineNo">065</span> }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span> public Type getType() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span> return this.type;<a name="line.68"></a>
+<span class="sourceLineNo">069</span> }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span> public long getWaitInterval() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span> return this.waitInterval;<a name="line.72"></a>
+<span class="sourceLineNo">073</span> }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span> public static void throwNumRequestsExceeded(final long waitInterval) throws<a name="line.75"></a>
+<span class="sourceLineNo">076</span> RpcThrottlingException {<a name="line.76"></a>
+<span class="sourceLineNo">077</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<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> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.80"></a>
+<span class="sourceLineNo">081</span> throws RpcThrottlingException {<a name="line.81"></a>
+<span class="sourceLineNo">082</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<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> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.85"></a>
+<span class="sourceLineNo">086</span> throws RpcThrottlingException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.87"></a>
+<span class="sourceLineNo">088</span> }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.90"></a>
+<span class="sourceLineNo">091</span> throws RpcThrottlingException {<a name="line.91"></a>
+<span class="sourceLineNo">092</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.92"></a>
+<span class="sourceLineNo">093</span> }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span> public static void throwWriteSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span> public static void throwReadSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<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> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.103"></a>
+<span class="sourceLineNo">104</span> throws RpcThrottlingException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + StringUtils.formatTime(waitInterval);<a name="line.105"></a>
+<span class="sourceLineNo">106</span> throw new RpcThrottlingException(type, waitInterval, msg);<a name="line.106"></a>
+<span class="sourceLineNo">107</span> }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span> private static long timeFromString(String timeDiff) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span> Pattern[] patterns =<a name="line.110"></a>
+<span class="sourceLineNo">111</span> new Pattern[] { Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.111"></a>
+<span class="sourceLineNo">112</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.112"></a>
+<span class="sourceLineNo">113</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec") };<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> for (int i = 0; i < patterns.length; ++i) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.116"></a>
+<span class="sourceLineNo">117</span> if (m.find()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (i > 0) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> if (i > 1) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.123"></a>
+<span class="sourceLineNo">124</span> }<a name="line.124"></a>
+<span class="sourceLineNo">125</span> return time;<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><a name="line.128"></a>
+<span class="sourceLineNo">129</span> return -1;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
new file mode 100644
index 0000000..d589905
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
@@ -0,0 +1,203 @@
+<!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 or more contributor license<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * agreements. See the NOTICE file distributed with this work for additional information regarding<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * "License"); you may not use this file except in compliance with the License. You may obtain a<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * law or agreed to in writing, software distributed under the License is distributed on an "AS IS"<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * for the specific language governing permissions and limitations under the License.<a name="line.9"></a>
+<span class="sourceLineNo">010</span> */<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.apache.hadoop.hbase.quotas;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.regex.Matcher;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.regex.Pattern;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.hadoop.util.StringUtils;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Describe the throttling result. TODO: At some point this will be handled on the client side to<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * prevent operation to go on the server if the waitInterval is greater than the one got as result<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * of this exception.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@InterfaceAudience.Public<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class RpcThrottlingException extends HBaseIOException {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span> @InterfaceAudience.Public<a name="line.29"></a>
+<span class="sourceLineNo">030</span> public enum Type {<a name="line.30"></a>
+<span class="sourceLineNo">031</span> NumRequestsExceeded, RequestSizeExceeded, NumReadRequestsExceeded, NumWriteRequestsExceeded,<a name="line.31"></a>
+<span class="sourceLineNo">032</span> WriteSizeExceeded, ReadSizeExceeded,<a name="line.32"></a>
+<span class="sourceLineNo">033</span> }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span> private static final String[] MSG_TYPE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span> new String[] { "number of requests exceeded", "request size limit exceeded",<a name="line.36"></a>
+<span class="sourceLineNo">037</span> "number of read requests exceeded", "number of write requests exceeded",<a name="line.37"></a>
+<span class="sourceLineNo">038</span> "write size limit exceeded", "read size limit exceeded", };<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span> private static final String MSG_WAIT = " - wait ";<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span> private long waitInterval;<a name="line.42"></a>
+<span class="sourceLineNo">043</span> private Type type;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span> public RpcThrottlingException(String msg) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span> super(msg);<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span> // Dirty workaround to get the information after<a name="line.48"></a>
+<span class="sourceLineNo">049</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.49"></a>
+<span class="sourceLineNo">050</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.51"></a>
+<span class="sourceLineNo">052</span> if (index >= 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.53"></a>
+<span class="sourceLineNo">054</span> type = Type.values()[i];<a name="line.54"></a>
+<span class="sourceLineNo">055</span> waitInterval = timeFromString(waitTimeStr);<a name="line.55"></a>
+<span class="sourceLineNo">056</span> break;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> }<a name="line.57"></a>
+<span class="sourceLineNo">058</span> }<a name="line.58"></a>
+<span class="sourceLineNo">059</span> }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span> public RpcThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span> super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">063</span> this.waitInterval = waitInterval;<a name="line.63"></a>
+<span class="sourceLineNo">064</span> this.type = type;<a name="line.64"></a>
+<span class="sourceLineNo">065</span> }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span> public Type getType() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span> return this.type;<a name="line.68"></a>
+<span class="sourceLineNo">069</span> }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span> public long getWaitInterval() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span> return this.waitInterval;<a name="line.72"></a>
+<span class="sourceLineNo">073</span> }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span> public static void throwNumRequestsExceeded(final long waitInterval) throws<a name="line.75"></a>
+<span class="sourceLineNo">076</span> RpcThrottlingException {<a name="line.76"></a>
+<span class="sourceLineNo">077</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<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> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.80"></a>
+<span class="sourceLineNo">081</span> throws RpcThrottlingException {<a name="line.81"></a>
+<span class="sourceLineNo">082</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<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> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.85"></a>
+<span class="sourceLineNo">086</span> throws RpcThrottlingException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.87"></a>
+<span class="sourceLineNo">088</span> }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.90"></a>
+<span class="sourceLineNo">091</span> throws RpcThrottlingException {<a name="line.91"></a>
+<span class="sourceLineNo">092</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.92"></a>
+<span class="sourceLineNo">093</span> }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span> public static void throwWriteSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span> public static void throwReadSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<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> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.103"></a>
+<span class="sourceLineNo">104</span> throws RpcThrottlingException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + StringUtils.formatTime(waitInterval);<a name="line.105"></a>
+<span class="sourceLineNo">106</span> throw new RpcThrottlingException(type, waitInterval, msg);<a name="line.106"></a>
+<span class="sourceLineNo">107</span> }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span> private static long timeFromString(String timeDiff) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span> Pattern[] patterns =<a name="line.110"></a>
+<span class="sourceLineNo">111</span> new Pattern[] { Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.111"></a>
+<span class="sourceLineNo">112</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.112"></a>
+<span class="sourceLineNo">113</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec") };<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> for (int i = 0; i < patterns.length; ++i) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.116"></a>
+<span class="sourceLineNo">117</span> if (m.find()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (i > 0) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> if (i > 1) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.123"></a>
+<span class="sourceLineNo">124</span> }<a name="line.124"></a>
+<span class="sourceLineNo">125</span> return time;<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><a name="line.128"></a>
+<span class="sourceLineNo">129</span> return -1;<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
index 985e2ef..c27a837 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
@@ -37,145 +37,148 @@
<span class="sourceLineNo">029</span> * TODO: At some point this will be handled on the client side to prevent<a name="line.29"></a>
<span class="sourceLineNo">030</span> * operation to go on the server if the waitInterval is grater than the one got<a name="line.30"></a>
<span class="sourceLineNo">031</span> * as result of this exception.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceAudience.Public<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public class ThrottlingException extends QuotaExceededException {<a name="line.34"></a>
-<span class="sourceLineNo">035</span> private static final long serialVersionUID = 1406576492085155743L;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span> @InterfaceAudience.Public<a name="line.37"></a>
-<span class="sourceLineNo">038</span> public enum Type {<a name="line.38"></a>
-<span class="sourceLineNo">039</span> NumRequestsExceeded,<a name="line.39"></a>
-<span class="sourceLineNo">040</span> RequestSizeExceeded,<a name="line.40"></a>
-<span class="sourceLineNo">041</span> NumReadRequestsExceeded,<a name="line.41"></a>
-<span class="sourceLineNo">042</span> NumWriteRequestsExceeded,<a name="line.42"></a>
-<span class="sourceLineNo">043</span> WriteSizeExceeded,<a name="line.43"></a>
-<span class="sourceLineNo">044</span> ReadSizeExceeded,<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> private static final String[] MSG_TYPE = new String[] {<a name="line.47"></a>
-<span class="sourceLineNo">048</span> "number of requests exceeded",<a name="line.48"></a>
-<span class="sourceLineNo">049</span> "request size limit exceeded",<a name="line.49"></a>
-<span class="sourceLineNo">050</span> "number of read requests exceeded",<a name="line.50"></a>
-<span class="sourceLineNo">051</span> "number of write requests exceeded",<a name="line.51"></a>
-<span class="sourceLineNo">052</span> "write size limit exceeded",<a name="line.52"></a>
-<span class="sourceLineNo">053</span> "read size limit exceeded",<a name="line.53"></a>
-<span class="sourceLineNo">054</span> };<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span> private static final String MSG_WAIT = " - wait ";<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span> private long waitInterval;<a name="line.58"></a>
-<span class="sourceLineNo">059</span> private Type type;<a name="line.59"></a>
+<span class="sourceLineNo">032</span> *<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * @deprecated replaced by {@link RpcThrottlingException} since hbase-2.0.0.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>@Deprecated<a name="line.35"></a>
+<span class="sourceLineNo">036</span>@InterfaceAudience.Public<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public class ThrottlingException extends QuotaExceededException {<a name="line.37"></a>
+<span class="sourceLineNo">038</span> private static final long serialVersionUID = 1406576492085155743L;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span> @InterfaceAudience.Public<a name="line.40"></a>
+<span class="sourceLineNo">041</span> public enum Type {<a name="line.41"></a>
+<span class="sourceLineNo">042</span> NumRequestsExceeded,<a name="line.42"></a>
+<span class="sourceLineNo">043</span> RequestSizeExceeded,<a name="line.43"></a>
+<span class="sourceLineNo">044</span> NumReadRequestsExceeded,<a name="line.44"></a>
+<span class="sourceLineNo">045</span> NumWriteRequestsExceeded,<a name="line.45"></a>
+<span class="sourceLineNo">046</span> WriteSizeExceeded,<a name="line.46"></a>
+<span class="sourceLineNo">047</span> ReadSizeExceeded,<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> private static final String[] MSG_TYPE = new String[] {<a name="line.50"></a>
+<span class="sourceLineNo">051</span> "number of requests exceeded",<a name="line.51"></a>
+<span class="sourceLineNo">052</span> "request size limit exceeded",<a name="line.52"></a>
+<span class="sourceLineNo">053</span> "number of read requests exceeded",<a name="line.53"></a>
+<span class="sourceLineNo">054</span> "number of write requests exceeded",<a name="line.54"></a>
+<span class="sourceLineNo">055</span> "write size limit exceeded",<a name="line.55"></a>
+<span class="sourceLineNo">056</span> "read size limit exceeded",<a name="line.56"></a>
+<span class="sourceLineNo">057</span> };<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span> private static final String MSG_WAIT = " - wait ";<a name="line.59"></a>
<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span> public ThrottlingException(String msg) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span> super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">061</span> private long waitInterval;<a name="line.61"></a>
+<span class="sourceLineNo">062</span> private Type type;<a name="line.62"></a>
<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span> // Dirty workaround to get the information after<a name="line.64"></a>
-<span class="sourceLineNo">065</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.65"></a>
-<span class="sourceLineNo">066</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.67"></a>
-<span class="sourceLineNo">068</span> if (index >= 0) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.69"></a>
-<span class="sourceLineNo">070</span> type = Type.values()[i];<a name="line.70"></a>
-<span class="sourceLineNo">071</span> waitInterval = timeFromString(waitTimeStr);<a name="line.71"></a>
-<span class="sourceLineNo">072</span> break;<a name="line.72"></a>
-<span class="sourceLineNo">073</span> }<a name="line.73"></a>
-<span class="sourceLineNo">074</span> }<a name="line.74"></a>
-<span class="sourceLineNo">075</span> }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span> public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span> super(msg);<a name="line.78"></a>
-<span class="sourceLineNo">079</span> this.waitInterval = waitInterval;<a name="line.79"></a>
-<span class="sourceLineNo">080</span> this.type = type;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span> public Type getType() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span> return this.type;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> }<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span> public long getWaitInterval() {<a name="line.87"></a>
-<span class="sourceLineNo">088</span> return this.waitInterval;<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> public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.91"></a>
-<span class="sourceLineNo">092</span> throws ThrottlingException {<a name="line.92"></a>
-<span class="sourceLineNo">093</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.93"></a>
-<span class="sourceLineNo">094</span> }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.96"></a>
-<span class="sourceLineNo">097</span> throws ThrottlingException {<a name="line.97"></a>
-<span class="sourceLineNo">098</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.98"></a>
-<span class="sourceLineNo">099</span> }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.101"></a>
-<span class="sourceLineNo">102</span> throws ThrottlingException {<a name="line.102"></a>
-<span class="sourceLineNo">103</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.103"></a>
-<span class="sourceLineNo">104</span> }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.106"></a>
-<span class="sourceLineNo">107</span> throws ThrottlingException {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.108"></a>
-<span class="sourceLineNo">109</span> }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span> public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.111"></a>
-<span class="sourceLineNo">112</span> throws ThrottlingException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> public static void throwReadSizeExceeded(final long waitInterval)<a name="line.116"></a>
-<span class="sourceLineNo">117</span> throws ThrottlingException {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.118"></a>
-<span class="sourceLineNo">119</span> }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.121"></a>
-<span class="sourceLineNo">122</span> throws ThrottlingException {<a name="line.122"></a>
-<span class="sourceLineNo">123</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.123"></a>
-<span class="sourceLineNo">124</span> throw new ThrottlingException(type, waitInterval, msg);<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> public static String formatTime(long timeDiff) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span> StringBuilder buf = new StringBuilder();<a name="line.128"></a>
-<span class="sourceLineNo">129</span> long hours = timeDiff / (60*60*1000);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> long rem = (timeDiff % (60*60*1000));<a name="line.130"></a>
-<span class="sourceLineNo">131</span> long minutes = rem / (60*1000);<a name="line.131"></a>
-<span class="sourceLineNo">132</span> rem = rem % (60*1000);<a name="line.132"></a>
-<span class="sourceLineNo">133</span> float seconds = rem / 1000.0f;<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span> if (hours != 0){<a name="line.135"></a>
-<span class="sourceLineNo">136</span> buf.append(hours);<a name="line.136"></a>
-<span class="sourceLineNo">137</span> buf.append("hrs, ");<a name="line.137"></a>
-<span class="sourceLineNo">138</span> }<a name="line.138"></a>
-<span class="sourceLineNo">139</span> if (minutes != 0){<a name="line.139"></a>
-<span class="sourceLineNo">140</span> buf.append(minutes);<a name="line.140"></a>
-<span class="sourceLineNo">141</span> buf.append("mins, ");<a name="line.141"></a>
-<span class="sourceLineNo">142</span> }<a name="line.142"></a>
-<span class="sourceLineNo">143</span> buf.append(String.format("%.2fsec", seconds));<a name="line.143"></a>
-<span class="sourceLineNo">144</span> return buf.toString();<a name="line.144"></a>
-<span class="sourceLineNo">145</span> }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span> private static long timeFromString(String timeDiff) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span> Pattern[] patterns = new Pattern[] {<a name="line.148"></a>
-<span class="sourceLineNo">149</span> Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.149"></a>
-<span class="sourceLineNo">150</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.150"></a>
-<span class="sourceLineNo">151</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<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> for (int i = 0; i < patterns.length; ++i) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.155"></a>
-<span class="sourceLineNo">156</span> if (m.find()) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.157"></a>
-<span class="sourceLineNo">158</span> if (i > 0) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> if (i > 1) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.162"></a>
+<span class="sourceLineNo">064</span> public ThrottlingException(String msg) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span> super(msg);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span> // Dirty workaround to get the information after<a name="line.67"></a>
+<span class="sourceLineNo">068</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.68"></a>
+<span class="sourceLineNo">069</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span> if (index >= 0) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.72"></a>
+<span class="sourceLineNo">073</span> type = Type.values()[i];<a name="line.73"></a>
+<span class="sourceLineNo">074</span> waitInterval = timeFromString(waitTimeStr);<a name="line.74"></a>
+<span class="sourceLineNo">075</span> break;<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> }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span> public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span> super(msg);<a name="line.81"></a>
+<span class="sourceLineNo">082</span> this.waitInterval = waitInterval;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> this.type = type;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span> public Type getType() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span> return this.type;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span> public long getWaitInterval() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span> return this.waitInterval;<a name="line.91"></a>
+<span class="sourceLineNo">092</span> }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span> public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.94"></a>
+<span class="sourceLineNo">095</span> throws ThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.99"></a>
+<span class="sourceLineNo">100</span> throws ThrottlingException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.104"></a>
+<span class="sourceLineNo">105</span> throws ThrottlingException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.106"></a>
+<span class="sourceLineNo">107</span> }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.109"></a>
+<span class="sourceLineNo">110</span> throws ThrottlingException {<a name="line.110"></a>
+<span class="sourceLineNo">111</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span> public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.114"></a>
+<span class="sourceLineNo">115</span> throws ThrottlingException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<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> public static void throwReadSizeExceeded(final long waitInterval)<a name="line.119"></a>
+<span class="sourceLineNo">120</span> throws ThrottlingException {<a name="line.120"></a>
+<span class="sourceLineNo">121</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.124"></a>
+<span class="sourceLineNo">125</span> throws ThrottlingException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> throw new ThrottlingException(type, waitInterval, msg);<a name="line.127"></a>
+<span class="sourceLineNo">128</span> }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span> public static String formatTime(long timeDiff) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span> StringBuilder buf = new StringBuilder();<a name="line.131"></a>
+<span class="sourceLineNo">132</span> long hours = timeDiff / (60*60*1000);<a name="line.132"></a>
+<span class="sourceLineNo">133</span> long rem = (timeDiff % (60*60*1000));<a name="line.133"></a>
+<span class="sourceLineNo">134</span> long minutes = rem / (60*1000);<a name="line.134"></a>
+<span class="sourceLineNo">135</span> rem = rem % (60*1000);<a name="line.135"></a>
+<span class="sourceLineNo">136</span> float seconds = rem / 1000.0f;<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span> if (hours != 0){<a name="line.138"></a>
+<span class="sourceLineNo">139</span> buf.append(hours);<a name="line.139"></a>
+<span class="sourceLineNo">140</span> buf.append("hrs, ");<a name="line.140"></a>
+<span class="sourceLineNo">141</span> }<a name="line.141"></a>
+<span class="sourceLineNo">142</span> if (minutes != 0){<a name="line.142"></a>
+<span class="sourceLineNo">143</span> buf.append(minutes);<a name="line.143"></a>
+<span class="sourceLineNo">144</span> buf.append("mins, ");<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span> buf.append(String.format("%.2fsec", seconds));<a name="line.146"></a>
+<span class="sourceLineNo">147</span> return buf.toString();<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> private static long timeFromString(String timeDiff) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Pattern[] patterns = new Pattern[] {<a name="line.151"></a>
+<span class="sourceLineNo">152</span> Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.152"></a>
+<span class="sourceLineNo">153</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<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> for (int i = 0; i < patterns.length; ++i) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.158"></a>
+<span class="sourceLineNo">159</span> if (m.find()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.160"></a>
+<span class="sourceLineNo">161</span> if (i > 0) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.162"></a>
<span class="sourceLineNo">163</span> }<a name="line.163"></a>
-<span class="sourceLineNo">164</span> return time;<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><a name="line.167"></a>
-<span class="sourceLineNo">168</span> return -1;<a name="line.168"></a>
-<span class="sourceLineNo">169</span> }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>}<a name="line.170"></a>
+<span class="sourceLineNo">164</span> if (i > 1) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> }<a name="line.166"></a>
+<span class="sourceLineNo">167</span> return time;<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><a name="line.170"></a>
+<span class="sourceLineNo">171</span> return -1;<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>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
index 985e2ef..c27a837 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
@@ -37,145 +37,148 @@
<span class="sourceLineNo">029</span> * TODO: At some point this will be handled on the client side to prevent<a name="line.29"></a>
<span class="sourceLineNo">030</span> * operation to go on the server if the waitInterval is grater than the one got<a name="line.30"></a>
<span class="sourceLineNo">031</span> * as result of this exception.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceAudience.Public<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public class ThrottlingException extends QuotaExceededException {<a name="line.34"></a>
-<span class="sourceLineNo">035</span> private static final long serialVersionUID = 1406576492085155743L;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span> @InterfaceAudience.Public<a name="line.37"></a>
-<span class="sourceLineNo">038</span> public enum Type {<a name="line.38"></a>
-<span class="sourceLineNo">039</span> NumRequestsExceeded,<a name="line.39"></a>
-<span class="sourceLineNo">040</span> RequestSizeExceeded,<a name="line.40"></a>
-<span class="sourceLineNo">041</span> NumReadRequestsExceeded,<a name="line.41"></a>
-<span class="sourceLineNo">042</span> NumWriteRequestsExceeded,<a name="line.42"></a>
-<span class="sourceLineNo">043</span> WriteSizeExceeded,<a name="line.43"></a>
-<span class="sourceLineNo">044</span> ReadSizeExceeded,<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> private static final String[] MSG_TYPE = new String[] {<a name="line.47"></a>
-<span class="sourceLineNo">048</span> "number of requests exceeded",<a name="line.48"></a>
-<span class="sourceLineNo">049</span> "request size limit exceeded",<a name="line.49"></a>
-<span class="sourceLineNo">050</span> "number of read requests exceeded",<a name="line.50"></a>
-<span class="sourceLineNo">051</span> "number of write requests exceeded",<a name="line.51"></a>
-<span class="sourceLineNo">052</span> "write size limit exceeded",<a name="line.52"></a>
-<span class="sourceLineNo">053</span> "read size limit exceeded",<a name="line.53"></a>
-<span class="sourceLineNo">054</span> };<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span> private static final String MSG_WAIT = " - wait ";<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span> private long waitInterval;<a name="line.58"></a>
-<span class="sourceLineNo">059</span> private Type type;<a name="line.59"></a>
+<span class="sourceLineNo">032</span> *<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * @deprecated replaced by {@link RpcThrottlingException} since hbase-2.0.0.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>@Deprecated<a name="line.35"></a>
+<span class="sourceLineNo">036</span>@InterfaceAudience.Public<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public class ThrottlingException extends QuotaExceededException {<a name="line.37"></a>
+<span class="sourceLineNo">038</span> private static final long serialVersionUID = 1406576492085155743L;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span> @InterfaceAudience.Public<a name="line.40"></a>
+<span class="sourceLineNo">041</span> public enum Type {<a name="line.41"></a>
+<span class="sourceLineNo">042</span> NumRequestsExceeded,<a name="line.42"></a>
+<span class="sourceLineNo">043</span> RequestSizeExceeded,<a name="line.43"></a>
+<span class="sourceLineNo">044</span> NumReadRequestsExceeded,<a name="line.44"></a>
+<span class="sourceLineNo">045</span> NumWriteRequestsExceeded,<a name="line.45"></a>
+<span class="sourceLineNo">046</span> WriteSizeExceeded,<a name="line.46"></a>
+<span class="sourceLineNo">047</span> ReadSizeExceeded,<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> private static final String[] MSG_TYPE = new String[] {<a name="line.50"></a>
+<span class="sourceLineNo">051</span> "number of requests exceeded",<a name="line.51"></a>
+<span class="sourceLineNo">052</span> "request size limit exceeded",<a name="line.52"></a>
+<span class="sourceLineNo">053</span> "number of read requests exceeded",<a name="line.53"></a>
+<span class="sourceLineNo">054</span> "number of write requests exceeded",<a name="line.54"></a>
+<span class="sourceLineNo">055</span> "write size limit exceeded",<a name="line.55"></a>
+<span class="sourceLineNo">056</span> "read size limit exceeded",<a name="line.56"></a>
+<span class="sourceLineNo">057</span> };<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span> private static final String MSG_WAIT = " - wait ";<a name="line.59"></a>
<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span> public ThrottlingException(String msg) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span> super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">061</span> private long waitInterval;<a name="line.61"></a>
+<span class="sourceLineNo">062</span> private Type type;<a name="line.62"></a>
<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span> // Dirty workaround to get the information after<a name="line.64"></a>
-<span class="sourceLineNo">065</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.65"></a>
-<span class="sourceLineNo">066</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.67"></a>
-<span class="sourceLineNo">068</span> if (index >= 0) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.69"></a>
-<span class="sourceLineNo">070</span> type = Type.values()[i];<a name="line.70"></a>
-<span class="sourceLineNo">071</span> waitInterval = timeFromString(waitTimeStr);<a name="line.71"></a>
-<span class="sourceLineNo">072</span> break;<a name="line.72"></a>
-<span class="sourceLineNo">073</span> }<a name="line.73"></a>
-<span class="sourceLineNo">074</span> }<a name="line.74"></a>
-<span class="sourceLineNo">075</span> }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span> public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span> super(msg);<a name="line.78"></a>
-<span class="sourceLineNo">079</span> this.waitInterval = waitInterval;<a name="line.79"></a>
-<span class="sourceLineNo">080</span> this.type = type;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span> public Type getType() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span> return this.type;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> }<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span> public long getWaitInterval() {<a name="line.87"></a>
-<span class="sourceLineNo">088</span> return this.waitInterval;<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> public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.91"></a>
-<span class="sourceLineNo">092</span> throws ThrottlingException {<a name="line.92"></a>
-<span class="sourceLineNo">093</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.93"></a>
-<span class="sourceLineNo">094</span> }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.96"></a>
-<span class="sourceLineNo">097</span> throws ThrottlingException {<a name="line.97"></a>
-<span class="sourceLineNo">098</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.98"></a>
-<span class="sourceLineNo">099</span> }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.101"></a>
-<span class="sourceLineNo">102</span> throws ThrottlingException {<a name="line.102"></a>
-<span class="sourceLineNo">103</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.103"></a>
-<span class="sourceLineNo">104</span> }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.106"></a>
-<span class="sourceLineNo">107</span> throws ThrottlingException {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.108"></a>
-<span class="sourceLineNo">109</span> }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span> public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.111"></a>
-<span class="sourceLineNo">112</span> throws ThrottlingException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> public static void throwReadSizeExceeded(final long waitInterval)<a name="line.116"></a>
-<span class="sourceLineNo">117</span> throws ThrottlingException {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.118"></a>
-<span class="sourceLineNo">119</span> }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.121"></a>
-<span class="sourceLineNo">122</span> throws ThrottlingException {<a name="line.122"></a>
-<span class="sourceLineNo">123</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.123"></a>
-<span class="sourceLineNo">124</span> throw new ThrottlingException(type, waitInterval, msg);<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> public static String formatTime(long timeDiff) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span> StringBuilder buf = new StringBuilder();<a name="line.128"></a>
-<span class="sourceLineNo">129</span> long hours = timeDiff / (60*60*1000);<a name="line.129"></a>
-<span class="sourceLineNo">130</span> long rem = (timeDiff % (60*60*1000));<a name="line.130"></a>
-<span class="sourceLineNo">131</span> long minutes = rem / (60*1000);<a name="line.131"></a>
-<span class="sourceLineNo">132</span> rem = rem % (60*1000);<a name="line.132"></a>
-<span class="sourceLineNo">133</span> float seconds = rem / 1000.0f;<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span> if (hours != 0){<a name="line.135"></a>
-<span class="sourceLineNo">136</span> buf.append(hours);<a name="line.136"></a>
-<span class="sourceLineNo">137</span> buf.append("hrs, ");<a name="line.137"></a>
-<span class="sourceLineNo">138</span> }<a name="line.138"></a>
-<span class="sourceLineNo">139</span> if (minutes != 0){<a name="line.139"></a>
-<span class="sourceLineNo">140</span> buf.append(minutes);<a name="line.140"></a>
-<span class="sourceLineNo">141</span> buf.append("mins, ");<a name="line.141"></a>
-<span class="sourceLineNo">142</span> }<a name="line.142"></a>
-<span class="sourceLineNo">143</span> buf.append(String.format("%.2fsec", seconds));<a name="line.143"></a>
-<span class="sourceLineNo">144</span> return buf.toString();<a name="line.144"></a>
-<span class="sourceLineNo">145</span> }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span> private static long timeFromString(String timeDiff) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span> Pattern[] patterns = new Pattern[] {<a name="line.148"></a>
-<span class="sourceLineNo">149</span> Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.149"></a>
-<span class="sourceLineNo">150</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.150"></a>
-<span class="sourceLineNo">151</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<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> for (int i = 0; i < patterns.length; ++i) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.155"></a>
-<span class="sourceLineNo">156</span> if (m.find()) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.157"></a>
-<span class="sourceLineNo">158</span> if (i > 0) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> if (i > 1) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.162"></a>
+<span class="sourceLineNo">064</span> public ThrottlingException(String msg) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span> super(msg);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span> // Dirty workaround to get the information after<a name="line.67"></a>
+<span class="sourceLineNo">068</span> // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.68"></a>
+<span class="sourceLineNo">069</span> for (int i = 0; i < MSG_TYPE.length; ++i) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span> int index = msg.indexOf(MSG_TYPE[i]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span> if (index >= 0) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span> String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.72"></a>
+<span class="sourceLineNo">073</span> type = Type.values()[i];<a name="line.73"></a>
+<span class="sourceLineNo">074</span> waitInterval = timeFromString(waitTimeStr);<a name="line.74"></a>
+<span class="sourceLineNo">075</span> break;<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> }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span> public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span> super(msg);<a name="line.81"></a>
+<span class="sourceLineNo">082</span> this.waitInterval = waitInterval;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> this.type = type;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span> public Type getType() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span> return this.type;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span> public long getWaitInterval() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span> return this.waitInterval;<a name="line.91"></a>
+<span class="sourceLineNo">092</span> }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span> public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.94"></a>
+<span class="sourceLineNo">095</span> throws ThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span> throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span> public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.99"></a>
+<span class="sourceLineNo">100</span> throws ThrottlingException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span> public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.104"></a>
+<span class="sourceLineNo">105</span> throws ThrottlingException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span> throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.106"></a>
+<span class="sourceLineNo">107</span> }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span> public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.109"></a>
+<span class="sourceLineNo">110</span> throws ThrottlingException {<a name="line.110"></a>
+<span class="sourceLineNo">111</span> throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.111"></a>
+<span class="sourceLineNo">112</span> }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span> public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.114"></a>
+<span class="sourceLineNo">115</span> throws ThrottlingException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span> throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<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> public static void throwReadSizeExceeded(final long waitInterval)<a name="line.119"></a>
+<span class="sourceLineNo">120</span> throws ThrottlingException {<a name="line.120"></a>
+<span class="sourceLineNo">121</span> throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span> private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.124"></a>
+<span class="sourceLineNo">125</span> throws ThrottlingException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span> String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> throw new ThrottlingException(type, waitInterval, msg);<a name="line.127"></a>
+<span class="sourceLineNo">128</span> }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span> public static String formatTime(long timeDiff) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span> StringBuilder buf = new StringBuilder();<a name="line.131"></a>
+<span class="sourceLineNo">132</span> long hours = timeDiff / (60*60*1000);<a name="line.132"></a>
+<span class="sourceLineNo">133</span> long rem = (timeDiff % (60*60*1000));<a name="line.133"></a>
+<span class="sourceLineNo">134</span> long minutes = rem / (60*1000);<a name="line.134"></a>
+<span class="sourceLineNo">135</span> rem = rem % (60*1000);<a name="line.135"></a>
+<span class="sourceLineNo">136</span> float seconds = rem / 1000.0f;<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span> if (hours != 0){<a name="line.138"></a>
+<span class="sourceLineNo">139</span> buf.append(hours);<a name="line.139"></a>
+<span class="sourceLineNo">140</span> buf.append("hrs, ");<a name="line.140"></a>
+<span class="sourceLineNo">141</span> }<a name="line.141"></a>
+<span class="sourceLineNo">142</span> if (minutes != 0){<a name="line.142"></a>
+<span class="sourceLineNo">143</span> buf.append(minutes);<a name="line.143"></a>
+<span class="sourceLineNo">144</span> buf.append("mins, ");<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span> buf.append(String.format("%.2fsec", seconds));<a name="line.146"></a>
+<span class="sourceLineNo">147</span> return buf.toString();<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> private static long timeFromString(String timeDiff) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span> Pattern[] patterns = new Pattern[] {<a name="line.151"></a>
+<span class="sourceLineNo">152</span> Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.152"></a>
+<span class="sourceLineNo">153</span> Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.153"></a>
+<span class="sourceLineNo">154</span> Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<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> for (int i = 0; i < patterns.length; ++i) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> Matcher m = patterns[i].matcher(timeDiff);<a name="line.158"></a>
+<span class="sourceLineNo">159</span> if (m.find()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span> long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.160"></a>
+<span class="sourceLineNo">161</span> if (i > 0) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span> time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.162"></a>
<span class="sourceLineNo">163</span> }<a name="line.163"></a>
-<span class="sourceLineNo">164</span> return time;<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><a name="line.167"></a>
-<span class="sourceLineNo">168</span> return -1;<a name="line.168"></a>
-<span class="sourceLineNo">169</span> }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>}<a name="line.170"></a>
+<span class="sourceLineNo">164</span> if (i > 1) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span> time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.165"></a>
+<span class="sourceLineNo">166</span> }<a name="line.166"></a>
+<span class="sourceLineNo">167</span> return time;<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><a name="line.170"></a>
+<span class="sourceLineNo">171</span> return -1;<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>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
index e4d7b66..16a2371 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
@@ -118,30 +118,30 @@
<span class="sourceLineNo">110</span> }<a name="line.110"></a>
<span class="sourceLineNo">111</span><a name="line.111"></a>
<span class="sourceLineNo">112</span> @Override<a name="line.112"></a>
-<span class="sourceLineNo">113</span> public void checkQuota(long writeSize, long readSize) throws ThrottlingException {<a name="line.113"></a>
+<span class="sourceLineNo">113</span> public void checkQuota(long writeSize, long readSize) throws RpcThrottlingException {<a name="line.113"></a>
<span class="sourceLineNo">114</span> if (!reqsLimiter.canExecute()) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> ThrottlingException.throwNumRequestsExceeded(reqsLimiter.waitInterval());<a name="line.115"></a>
+<span class="sourceLineNo">115</span> RpcThrottlingException.throwNumRequestsExceeded(reqsLimiter.waitInterval());<a name="line.115"></a>
<span class="sourceLineNo">116</span> }<a name="line.116"></a>
<span class="sourceLineNo">117</span> if (!reqSizeLimiter.canExecute(writeSize + readSize)) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> ThrottlingException.throwRequestSizeExceeded(reqSizeLimiter<a name="line.118"></a>
+<span class="sourceLineNo">118</span> RpcThrottlingException.throwRequestSizeExceeded(reqSizeLimiter<a name="line.118"></a>
<span class="sourceLineNo">119</span> .waitInterval(writeSize + readSize));<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> if (writeSize > 0) {<a name="line.122"></a>
<span class="sourceLineNo">123</span> if (!writeReqsLimiter.canExecute()) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span> ThrottlingException.throwNumWriteRequestsExceeded(writeReqsLimiter.waitInterval());<a name="line.124"></a>
+<span class="sourceLineNo">124</span> RpcThrottlingException.throwNumWriteRequestsExceeded(writeReqsLimiter.waitInterval());<a name="line.124"></a>
<span class="sourceLineNo">125</span> }<a name="line.125"></a>
<span class="sourceLineNo">126</span> if (!writeSizeLimiter.canExecute(writeSize)) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span> ThrottlingException.throwWriteSizeExceeded(writeSizeLimiter.waitInterval(writeSize));<a name="line.127"></a>
+<span class="sourceLineNo">127</span> RpcThrottlingException.throwWriteSizeExceeded(writeSizeLimiter.waitInterval(writeSize));<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> if (readSize > 0) {<a name="line.131"></a>
<span class="sourceLineNo">132</span> if (!readReqsLimiter.canExecute()) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span> ThrottlingException.throwNumReadRequestsExceeded(readReqsLimiter.waitInterval());<a name="line.133"></a>
+<span class="sourceLineNo">133</span> RpcThrottlingException.throwNumReadRequestsExceeded(readReqsLimiter.waitInterval());<a name="line.133"></a>
<span class="sourceLineNo">134</span> }<a name="line.134"></a>
<span class="sourceLineNo">135</span> if (!readSizeLimiter.canExecute(readSize)) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span> ThrottlingException.throwReadSizeExceeded(readSizeLimiter.waitInterval(readSize));<a name="line.136"></a>
+<span class="sourceLineNo">136</span> RpcThrottlingException.throwReadSizeExceeded(readSizeLimiter.waitInterval(readSize));<a name="line.136"></a>
<span class="sourceLineNo">137</span> }<a name="line.137"></a>
<span class="sourceLineNo">138</span> }<a name="line.138"></a>
<span class="sourceLineNo">139</span> }<a name="line.139"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 22be6e7..acd7188 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase –
Export Control
@@ -331,7 +331,7 @@ for more details.</p>
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 50ce950..fa90da2 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Apache HBaseâ„¢ Home</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -409,7 +409,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 453fd19..459fad2 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – CI Management</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -291,7 +291,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 55344bb..ba97839 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="20180416" />
+ <meta name="Date-Revision-yyyymmdd" content="20180417" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache HBase – Issue Management</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -288,7 +288,7 @@
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.
- <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+ <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
</p>
</div>
[13/35] hbase-site git commit: Published site at
42d5447cfbc593becfc26684e03f482eb3a0fc49.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
@@ -72,7 +72,7 @@
<span class="sourceLineNo">064</span>/**<a name="line.64"></a>
<span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
<span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
<span class="sourceLineNo">069</span><a name="line.69"></a>
<span class="sourceLineNo">070</span> @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
<span class="sourceLineNo">078</span> @BeforeClass<a name="line.78"></a>
<span class="sourceLineNo">079</span> public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
<span class="sourceLineNo">080</span> TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span> admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span> public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span> TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span> // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span> public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> final List<RegionServerThread> rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span> for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span> }<a name="line.103"></a>
-<span class="sourceLineNo">104</span> // Wait for all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span> public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span> for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span> return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> }<a name="line.111"></a>
-<span class="sourceLineNo">112</span> }<a name="line.112"></a>
-<span class="sourceLineNo">113</span> return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span> @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span> public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.118"></a>
-<span class="sourceLineNo">119</span> for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span> }<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span> @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span> // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span> }<a name="line.141"></a>
-<span class="sourceLineNo">142</span> });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span> @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span> public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span> }<a name="line.148"></a>
-<span class="sourceLineNo">149</span> });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span> // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span> public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> }<a name="line.160"></a>
-<span class="sourceLineNo">161</span> });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span> admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span> int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span> admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span> if (admin.getPeersCount() <= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span> Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span> }<a name="line.183"></a>
-<span class="sourceLineNo">184</span> // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span> doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span> public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span> // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span> LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span> });<a name="line.196"></a>
-<span class="sourceLineNo">197</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<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> @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span> public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span> final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span> // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span> // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span> RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span> byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span> for (int i = 0; i < 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> if (row.length > 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span> Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span> put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span> totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span> }<a name="line.222"></a>
-<span class="sourceLineNo">223</span> }<a name="line.223"></a>
-<span class="sourceLineNo">224</span> }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span> admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span> null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span> public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span> public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span> return failure;<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> admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span> utility1.deleteTableData(tableName);<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> @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span> //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span> // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span> doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span> @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span> public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span> });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span> //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span> @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span> //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span> "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<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> @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span> //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span> "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span> }<a name="line.297"></a>
+<span class="sourceLineNo">081</span> numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<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> @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span> public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span> TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span> // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span> Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() > 0);<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> @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span> ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span> ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> final List<RegionServerThread> rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span> utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span> for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span> utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span> }<a name="line.102"></a>
+<span class="sourceLineNo">103</span> // Wait for all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span> utility1.waitFor(3000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span> @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span> public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span> for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span> return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> }<a name="line.110"></a>
+<span class="sourceLineNo">111</span> }<a name="line.111"></a>
+<span class="sourceLineNo">112</span> return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span> @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span> public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span> List<String> logRollInProgressRsList = new ArrayList<>();<a name="line.117"></a>
+<span class="sourceLineNo">118</span> for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span> logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span> }<a name="line.121"></a>
+<span class="sourceLineNo">122</span> }<a name="line.122"></a>
+<span class="sourceLineNo">123</span> return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<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> }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span> @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span> .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span> // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span> @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span> public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return ReplicationEndpointForTest.contructedCount.get() >= numRegionServers;<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><a name="line.142"></a>
+<span class="sourceLineNo">143</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span> @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span> public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> return ReplicationEndpointForTest.startedCount.get() >= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span> // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span> public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<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> doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> admin.removePeer("testCustomReplicationEndpoint");<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> @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span> int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span> final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span> admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span> .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span> // debug. Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span> // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span> if (admin.getPeersCount() <= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span> LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> }<a name="line.182"></a>
+<span class="sourceLineNo">183</span> // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span> doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span> public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span> // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span> LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span> });<a name="line.195"></a>
+<span class="sourceLineNo">196</span> if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span> throw ReplicationEndpointReturningFalse.ex.get();<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> admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span> }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span> @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span> public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span> final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span> List<HRegion> regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span> // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span> RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span> byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span> for (int i = 0; i < 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> if (row.length > 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span> put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span> }<a name="line.221"></a>
+<span class="sourceLineNo">222</span> }<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span> new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span> .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span> null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span> final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate<Exception>() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span> @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span> public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span> return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<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> @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span> public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span> + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span> }<a name="line.242"></a>
+<span class="sourceLineNo">243</span> });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span> utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span> @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span> public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span> //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span> EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span> "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span> admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span> doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span> doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> doPut(connection, Bytes.toBytes("row2"));<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> Waiter.waitFor(conf1, 60000, new Waiter.Predicate<Exception>() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span> @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span> public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span> return ReplicationEndpointForTest.replicateCount.get() >= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span> });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span> Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span> //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span> Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span> admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<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> @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span> public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span> //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span> "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span> admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span> }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span> @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span> public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> ReplicationPeerConfig rpc = new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span> .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span> //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span> rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span> "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span> admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<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><a name="line.299"></a>
-<span class="sourceLineNo">300</span> @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span> /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span> allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span> the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> */<a name="line.309"></a>
-<span class="sourceLineNo">310</span> String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span> long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span> String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span> String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span> String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span> long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span> source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span> source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span> source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span> source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span> source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span> source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span> source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span> source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span> source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span> verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span> verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span> verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> doPut(connection, row);<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><a name="line.363"></a>
-<span class="sourceLineNo">364</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span> try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span> Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span> t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span> }<a name="line.369"></a>
-<span class="sourceLineNo">370</span> }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span> private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span> Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span> static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span> static volatile List<Entry> lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span> @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span> /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span> The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span> and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span> Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span> allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span> the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span> DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span> MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span> when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span> MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span> MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span> MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span> String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span> String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span> String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span> long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span> String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span> long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span> source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span> source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span> source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span> source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span> source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span> source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span> source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span> source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span> source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span> verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span> verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span> verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span> verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span> verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span> verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span> verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span> verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span> verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span> verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span> verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span> verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span> verify(globalRms).updateHistogram(globalCounterName, count);<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> private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span> try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span> doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span> }<a name="line.360"></a>
+<span class="sourceLineNo">361</span> }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span> private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span> try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span> Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span> put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span> }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span> private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span> if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span> return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span> }<a name="line.374"></a>
+<span class="sourceLineNo">375</span> Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span> List<Cell> cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span> Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span> Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span> cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span> }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span> public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span> static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span> static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span> static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span> static volatile List<Entry> lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span> public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> replicateCount.set(0);<a name="line.391"></a>
<span class="sourceLineNo">392</span> contructedCount.incrementAndGet();<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>
@@ -441,127 +441,131 @@
<span class="sourceLineNo">433</span> static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
<span class="sourceLineNo">434</span> static boolean failedOnce;<a name="line.434"></a>
<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span> boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span> }<a name="line.441"></a>
-<span class="sourceLineNo">442</span> return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span> }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span> @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span> return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span> } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span> failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return new FailingDummyReplicator(entries, ordinal);<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> protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span> private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span> public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span> replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span> }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span> @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span> boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span> replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span> }<a name="line.445"></a>
+<span class="sourceLineNo">446</span> return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span> }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span> @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span> protected Replicator createReplicator(List<Entry> entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span> // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span> if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span> return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span> } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span> failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span> return new FailingDummyReplicator(entries, ordinal);<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><a name="line.459"></a>
-<span class="sourceLineNo">460</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span> @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span> public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span> return ordinal;<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><a name="line.470"></a>
-<span class="sourceLineNo">471</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span> super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span> }<a name="line.475"></a>
+<span class="sourceLineNo">460</span> protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span> private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span> public DummyReplicator(List<Entry> entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span> super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span> this.ordinal = ordinal;<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> @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span> public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span> return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span> }<a name="line.472"></a>
+<span class="sourceLineNo">473</span> }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span> protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span> @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span> public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span> }<a name="line.480"></a>
-<span class="sourceLineNo">481</span> }<a name="line.481"></a>
-<span class="sourceLineNo">482</span> }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span> static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span> @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span> try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span> // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span> doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span> } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span> return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span> }<a name="line.502"></a>
-<span class="sourceLineNo">503</span> }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span> public FailingDummyReplicator(List<Entry> entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span> super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span> }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span> @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span> public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span> public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span> static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span> @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span> try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span> // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span> doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span> } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span> ex.set(e);<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> super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span> LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span> replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span> return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span> }<a name="line.506"></a>
+<span class="sourceLineNo">507</span> }<a name="line.507"></a>
<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span> @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span> try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span> super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span> doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span> ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span> return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span> }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span> public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span> @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span> int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span> for (int i = size-1; i >= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span> row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span> cells.remove(i);<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> return entry;<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> }<a name="line.537"></a>
-<span class="sourceLineNo">538</span> }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span> @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span> public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span> return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span> public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span> return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span> // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span> public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span> static AtomicReference<Exception> ex = new AtomicReference<>(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span> @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span> public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span> try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span> super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span> doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span> } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span> ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span> }<a name="line.520"></a>
+<span class="sourceLineNo">521</span> return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span> }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span> @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span> public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span> return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span> @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span> public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span> ArrayList<Cell> cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span> int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span> for (int i = size-1; i >= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span> if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span> row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span> cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span> }<a name="line.536"></a>
+<span class="sourceLineNo">537</span> }<a name="line.537"></a>
+<span class="sourceLineNo">538</span> return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span> });<a name="line.540"></a>
+<span class="sourceLineNo">541</span> }<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> public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span> private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span> @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span> public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span> passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span> return entry;<a name="line.549"></a>
<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span> return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span> }<a name="line.554"></a>
<span class="sourceLineNo">555</span> }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span> public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span> }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>