http://git-wip-us.apache.org/repos/asf/hbase-site/blob/05b8d7a5/testdevapidocs/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html
----------------------------------------------------------------------
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html
 
b/testdevapidocs/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html
index afdfb3d..687e613 100644
--- 
a/testdevapidocs/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html
+++ 
b/testdevapidocs/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = 
{"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":9};
+var methods = 
{"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":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";
@@ -190,44 +190,40 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#ensureAllDatanodeAlive--">ensureAllDatanodeAlive</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#setUp--">setUp</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<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/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#tearDown--">tearDown</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<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/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#test--">test</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<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/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#testConnectToDatanodeFailed--">testConnectToDatanodeFailed</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<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/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#testCreateParentFailed--">testCreateParentFailed</a></span>()</code>
 <div class="block">This is important for fencing when recover from RS 
crash.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<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/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#testHeartbeat--">testHeartbeat</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" 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/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#testRecover--">testRecover</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<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/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#testWriteLargeChunk--">testWriteLargeChunk</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>(package private) static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#writeAndVerify-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutput-">writeAndVerify</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
               org.apache.hadoop.fs.Path&nbsp;f,
@@ -373,27 +369,13 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
-<a name="ensureAllDatanodeAlive--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>ensureAllDatanodeAlive</h4>
-<pre>private&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.98">ensureAllDatanodeAlive</a>()
-                             throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true";
 title="class or interface in java.lang">InterruptedException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true";
 title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
 <a 
name="writeAndVerify-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutput-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>writeAndVerify</h4>
-<pre>static&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.115">writeAndVerify</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>static&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.98">writeAndVerify</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                            org.apache.hadoop.fs.Path&nbsp;f,
                            
org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutput&nbsp;out)
                     throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a>,
@@ -413,7 +395,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>test</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.146">test</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.129">test</a>()
           throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a>,
                  <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true";
 title="class or interface in java.lang">InterruptedException</a>,
                  <a 
href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true";
 title="class or interface in java.util.concurrent">ExecutionException</a></pre>
@@ -431,7 +413,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRecover</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.155">testRecover</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.138">testRecover</a>()
                  throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a>,
                         <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true";
 title="class or interface in java.lang">InterruptedException</a>,
                         <a 
href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true";
 title="class or interface in java.util.concurrent">ExecutionException</a></pre>
@@ -449,7 +431,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testHeartbeat</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.188">testHeartbeat</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.167">testHeartbeat</a>()
                    throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a>,
                           <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true";
 title="class or interface in java.lang">InterruptedException</a>,
                           <a 
href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true";
 title="class or interface in java.util.concurrent">ExecutionException</a></pre>
@@ -467,7 +449,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testCreateParentFailed</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.202">testCreateParentFailed</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.181">testCreateParentFailed</a>()
                             throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a></pre>
 <div class="block">This is important for fencing when recover from RS 
crash.</div>
 <dl>
@@ -482,7 +464,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testConnectToDatanodeFailed</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.216">testConnectToDatanodeFailed</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.195">testConnectToDatanodeFailed</a>()
                                  throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a>,
                                         <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true";
 title="class or interface in java.lang">ClassNotFoundException</a>,
                                         <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/NoSuchMethodException.html?is-external=true";
 title="class or interface in java.lang">NoSuchMethodException</a>,
@@ -508,7 +490,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testWriteLargeChunk</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.248">testWriteLargeChunk</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html#line.218">testWriteLargeChunk</a>()
                          throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a>,
                                 <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true";
 title="class or interface in java.lang">InterruptedException</a>,
                                 <a 
href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true";
 title="class or interface in java.util.concurrent">ExecutionException</a></pre>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/05b8d7a5/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 10976ce..85665b5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -584,15 +584,15 @@
 <ul>
 <li type="circle">java.lang.<a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true";
 title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.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/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/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/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/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.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/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/ClusterManager.ServiceType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ClusterManager.ServiceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/05b8d7a5/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 47bd2a4..d5fd1af 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="http://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.procedure.Procedure (implements 
java.util.concurrent.<a 
href="http://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>&lt;V&gt;, 
org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
+<li 
type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; 
(implements java.lang.<a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
 <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.procedure2.Procedure&lt;TEnvironment&gt; 
(implements java.lang.<a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
+<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements 
java.util.concurrent.<a 
href="http://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>&lt;V&gt;, 
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.ProcedureManager

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/05b8d7a5/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 b17704e..def23ed 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="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true";
 title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/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/05b8d7a5/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 5fe8358..585a7ab 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -630,11 +630,11 @@
 <ul>
 <li type="circle">java.lang.<a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true";
 title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/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/05b8d7a5/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html
----------------------------------------------------------------------
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html
 
b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html
index 85a4a49..89e49f4 100644
--- 
a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html
+++ 
b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a 
href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html#line.41">TestAsyncLogRolling</a>
+<pre>public class <a 
href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html#line.42">TestAsyncLogRolling</a>
 extends <a 
href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractTestLogRolling.html"
 title="class in 
org.apache.hadoop.hbase.regionserver.wal">AbstractTestLogRolling</a></pre>
 </li>
 </ul>
@@ -220,7 +220,7 @@ extends <a 
href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>timeout</h4>
-<pre>public final&nbsp;org.junit.rules.TestRule <a 
href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html#line.42">timeout</a></pre>
+<pre>public final&nbsp;org.junit.rules.TestRule <a 
href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html#line.43">timeout</a></pre>
 </li>
 </ul>
 </li>
@@ -237,7 +237,7 @@ extends <a 
href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncLogRolling</h4>
-<pre>public&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html#line.41">TestAsyncLogRolling</a>()</pre>
+<pre>public&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html#line.42">TestAsyncLogRolling</a>()</pre>
 </li>
 </ul>
 </li>
@@ -254,7 +254,7 @@ extends <a 
href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html#line.46">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html#line.47">setUpBeforeClass</a>()
                              throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -268,7 +268,7 @@ extends <a 
href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testLogRollOnDatanodeDeath</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html#line.55">testLogRollOnDatanodeDeath</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.html#line.56">testLogRollOnDatanodeDeath</a>()
                                 throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a>,
                                        <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true";
 title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/05b8d7a5/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html
----------------------------------------------------------------------
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html 
b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html
index 1b784ec..bc6b921 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10};
+var methods = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":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/zookeeper/TestReadOnlyZKClient.html#line.52">TestReadOnlyZKClient</a>
+<pre>public class <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.62">TestReadOnlyZKClient</a>
 extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -203,8 +203,16 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#testNotCloseZkWhenPending--">testNotCloseZkWhenPending</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#testSessionExpire--">testSessionExpire</a></span>()</code>&nbsp;</td>
 </tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#waitForIdleConnectionClosed--">waitForIdleConnectionClosed</a></span>()</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -233,7 +241,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>UTIL</h4>
-<pre>private static&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/HBaseZKTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseZKTestingUtility</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.54">UTIL</a></pre>
+<pre>private static&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/HBaseZKTestingUtility.html" 
title="class in org.apache.hadoop.hbase">HBaseZKTestingUtility</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.64">UTIL</a></pre>
 </li>
 </ul>
 <a name="PORT">
@@ -242,7 +250,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>PORT</h4>
-<pre>private static&nbsp;int <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.56">PORT</a></pre>
+<pre>private static&nbsp;int <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.66">PORT</a></pre>
 </li>
 </ul>
 <a name="PATH">
@@ -251,7 +259,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>PATH</h4>
-<pre>private static&nbsp;<a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.58">PATH</a></pre>
+<pre>private static&nbsp;<a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.68">PATH</a></pre>
 </li>
 </ul>
 <a name="DATA">
@@ -260,7 +268,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>DATA</h4>
-<pre>private static&nbsp;byte[] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.60">DATA</a></pre>
+<pre>private static&nbsp;byte[] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.70">DATA</a></pre>
 </li>
 </ul>
 <a name="CHILDREN">
@@ -269,7 +277,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>CHILDREN</h4>
-<pre>private static&nbsp;int <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.62">CHILDREN</a></pre>
+<pre>private static&nbsp;int <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.72">CHILDREN</a></pre>
 </li>
 </ul>
 <a name="RO_ZK">
@@ -278,7 +286,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RO_ZK</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.64">RO_ZK</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient <a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.74">RO_ZK</a></pre>
 </li>
 </ul>
 </li>
@@ -295,7 +303,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestReadOnlyZKClient</h4>
-<pre>public&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.52">TestReadOnlyZKClient</a>()</pre>
+<pre>public&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.62">TestReadOnlyZKClient</a>()</pre>
 </li>
 </ul>
 </li>
@@ -312,7 +320,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public static&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.67">setUp</a>()
+<pre>public static&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.77">setUp</a>()
                   throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -326,7 +334,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDown</h4>
-<pre>public static&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.90">tearDown</a>()
+<pre>public static&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.99">tearDown</a>()
                      throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true";
 title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -334,13 +342,27 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="waitForIdleConnectionClosed--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitForIdleConnectionClosed</h4>
+<pre>private&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.105">waitForIdleConnectionClosed</a>()
+                                  throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="testGetAndExists--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>testGetAndExists</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.97">testGetAndExists</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.122">testGetAndExists</a>()
                       throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -354,7 +376,7 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoNode</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.117">testNoNode</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.130">testNoNode</a>()
                 throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true";
 title="class or interface in java.lang">InterruptedException</a>,
                        <a 
href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true";
 title="class or interface in java.util.concurrent">ExecutionException</a></pre>
 <dl>
@@ -367,10 +389,10 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <a name="testSessionExpire--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>testSessionExpire</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.133">testSessionExpire</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.146">testSessionExpire</a>()
                        throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -378,6 +400,20 @@ extends <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="testNotCloseZkWhenPending--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testNotCloseZkWhenPending</h4>
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/TestReadOnlyZKClient.html#line.161">testNotCloseZkWhenPending</a>()
+                               throws <a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/05b8d7a5/testdevapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html
----------------------------------------------------------------------
diff --git 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html
 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html
index b6a1730..1868cd9 100644
--- 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html
+++ 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/TestFanOutOneBlockAsyncDFSOutput.html
@@ -43,25 +43,25 @@
 <span class="sourceLineNo">035</span>import 
java.util.concurrent.CompletableFuture;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import 
java.util.concurrent.ExecutionException;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import 
java.util.concurrent.ThreadLocalRandom;<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>import 
org.apache.hadoop.fs.FSDataInputStream;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.fs.FileSystem;<a 
name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.fs.Path;<a 
name="line.41"></a>
-<span class="sourceLineNo">042</span>import 
org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import 
org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import 
org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import 
org.apache.hadoop.hdfs.DistributedFileSystem;<a name="line.45"></a>
+<span class="sourceLineNo">038</span>import 
org.apache.hadoop.fs.FSDataInputStream;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.fs.FileSystem;<a 
name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.fs.Path;<a 
name="line.40"></a>
+<span class="sourceLineNo">041</span>import 
org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import 
org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import 
org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import 
org.apache.hadoop.hdfs.DistributedFileSystem;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import 
org.apache.hadoop.hdfs.MiniDFSCluster.DataNodeProperties;<a name="line.45"></a>
 <span class="sourceLineNo">046</span>import 
org.apache.hadoop.hdfs.server.datanode.DataNode;<a name="line.46"></a>
 <span class="sourceLineNo">047</span>import 
org.apache.hadoop.ipc.RemoteException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.util.Daemon;<a 
name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.junit.AfterClass;<a 
name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.junit.BeforeClass;<a 
name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.junit.Rule;<a 
name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.junit.Test;<a 
name="line.52"></a>
-<span class="sourceLineNo">053</span>import 
org.junit.experimental.categories.Category;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.junit.rules.TestName;<a 
name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.slf4j.Logger;<a 
name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.slf4j.LoggerFactory;<a 
name="line.56"></a>
+<span class="sourceLineNo">048</span>import org.junit.AfterClass;<a 
name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.junit.BeforeClass;<a 
name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.Rule;<a 
name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.Test;<a 
name="line.51"></a>
+<span class="sourceLineNo">052</span>import 
org.junit.experimental.categories.Category;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.junit.rules.TestName;<a 
name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.slf4j.Logger;<a 
name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.slf4j.LoggerFactory;<a 
name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
 <span class="sourceLineNo">057</span>import 
org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.57"></a>
 <span class="sourceLineNo">058</span>import 
org.apache.hbase.thirdparty.io.netty.channel.EventLoop;<a name="line.58"></a>
 <span class="sourceLineNo">059</span>import 
org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup;<a 
name="line.59"></a>
@@ -103,175 +103,145 @@
 <span class="sourceLineNo">095</span>    TEST_UTIL.shutdownMiniDFSCluster();<a 
name="line.95"></a>
 <span class="sourceLineNo">096</span>  }<a name="line.96"></a>
 <span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private void ensureAllDatanodeAlive() 
throws InterruptedException {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    // 
FanOutOneBlockAsyncDFSOutputHelper.createOutput is fail-fast, so we need to 
make sure that we<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    // can create a 
FanOutOneBlockAsyncDFSOutput after a datanode restarting, otherwise some 
tests<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    // will fail.<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    for (;;) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      try {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>        FanOutOneBlockAsyncDFSOutput out 
=<a name="line.104"></a>
-<span class="sourceLineNo">105</span>            
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, new 
Path("/ensureDatanodeAlive"),<a name="line.105"></a>
-<span class="sourceLineNo">106</span>              true, true, (short) 3, 
FS.getDefaultBlockSize(), EVENT_LOOP_GROUP, CHANNEL_CLASS);<a 
name="line.106"></a>
-<span class="sourceLineNo">107</span>        out.close();<a 
name="line.107"></a>
-<span class="sourceLineNo">108</span>        break;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      } catch (IOException e) {<a 
name="line.109"></a>
-<span class="sourceLineNo">110</span>        Thread.sleep(100);<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>  }<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  static void writeAndVerify(FileSystem 
fs, Path f, AsyncFSOutput out)<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      throws IOException, 
InterruptedException, ExecutionException {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    
List&lt;CompletableFuture&lt;Long&gt;&gt; futures = new ArrayList&lt;&gt;();<a 
name="line.117"></a>
-<span class="sourceLineNo">118</span>    byte[] b = new byte[10];<a 
name="line.118"></a>
-<span class="sourceLineNo">119</span>    Random rand = new Random(12345);<a 
name="line.119"></a>
-<span class="sourceLineNo">120</span>    // test pipelined flush<a 
name="line.120"></a>
-<span class="sourceLineNo">121</span>    for (int i = 0; i &lt; 10; i++) {<a 
name="line.121"></a>
-<span class="sourceLineNo">122</span>      rand.nextBytes(b);<a 
name="line.122"></a>
-<span class="sourceLineNo">123</span>      out.write(b);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      futures.add(out.flush(false));<a 
name="line.124"></a>
-<span class="sourceLineNo">125</span>      futures.add(out.flush(false));<a 
name="line.125"></a>
-<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    for (int i = 0; i &lt; 10; i++) {<a 
name="line.127"></a>
-<span class="sourceLineNo">128</span>      assertEquals((i + 1) * b.length, 
futures.get(2 * i).join().longValue());<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      assertEquals((i + 1) * b.length, 
futures.get(2 * i + 1).join().longValue());<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    out.close();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    assertEquals(b.length * 10, 
fs.getFileStatus(f).getLen());<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    byte[] actual = new byte[b.length];<a 
name="line.133"></a>
-<span class="sourceLineNo">134</span>    rand.setSeed(12345);<a 
name="line.134"></a>
-<span class="sourceLineNo">135</span>    try (FSDataInputStream in = 
fs.open(f)) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      for (int i = 0; i &lt; 10; i++) {<a 
name="line.136"></a>
-<span class="sourceLineNo">137</span>        in.readFully(actual);<a 
name="line.137"></a>
-<span class="sourceLineNo">138</span>        rand.nextBytes(b);<a 
name="line.138"></a>
-<span class="sourceLineNo">139</span>        assertArrayEquals(b, actual);<a 
name="line.139"></a>
-<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      assertEquals(-1, in.read());<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><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  @Test<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  public void test() throws IOException, 
InterruptedException, ExecutionException {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    Path f = new Path("/" + 
name.getMethodName());<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    FanOutOneBlockAsyncDFSOutput out = 
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true,<a 
name="line.149"></a>
-<span class="sourceLineNo">150</span>      false, (short) 3, 
FS.getDefaultBlockSize(), eventLoop, CHANNEL_CLASS);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    writeAndVerify(FS, f, out);<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 testRecover() throws 
IOException, InterruptedException, ExecutionException {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Path f = new Path("/" + 
name.getMethodName());<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    FanOutOneBlockAsyncDFSOutput out = 
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true,<a 
name="line.158"></a>
-<span class="sourceLineNo">159</span>      false, (short) 3, 
FS.getDefaultBlockSize(), eventLoop, CHANNEL_CLASS);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    byte[] b = new byte[10];<a 
name="line.160"></a>
-<span class="sourceLineNo">161</span>    
ThreadLocalRandom.current().nextBytes(b);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    out.write(b, 0, b.length);<a 
name="line.162"></a>
-<span class="sourceLineNo">163</span>    out.flush(false).get();<a 
name="line.163"></a>
-<span class="sourceLineNo">164</span>    // restart one datanode which causes 
one connection broken<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    
TEST_UTIL.getDFSCluster().restartDataNode(0);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    try {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      out.write(b, 0, b.length);<a 
name="line.167"></a>
-<span class="sourceLineNo">168</span>      try {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        out.flush(false).get();<a 
name="line.169"></a>
-<span class="sourceLineNo">170</span>        fail("flush should fail");<a 
name="line.170"></a>
-<span class="sourceLineNo">171</span>      } catch (ExecutionException e) {<a 
name="line.171"></a>
-<span class="sourceLineNo">172</span>        // we restarted one datanode so 
the flush should fail<a name="line.172"></a>
-<span class="sourceLineNo">173</span>        LOG.info("expected exception 
caught", e);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      out.recoverAndClose(null);<a 
name="line.175"></a>
-<span class="sourceLineNo">176</span>      assertEquals(b.length, 
FS.getFileStatus(f).getLen());<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      byte[] actual = new 
byte[b.length];<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      try (FSDataInputStream in = 
FS.open(f)) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        in.readFully(actual);<a 
name="line.179"></a>
-<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      assertArrayEquals(b, actual);<a 
name="line.181"></a>
-<span class="sourceLineNo">182</span>    } finally {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      ensureAllDatanodeAlive();<a 
name="line.183"></a>
-<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  }<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>  @Test<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public void testHeartbeat() throws 
IOException, InterruptedException, ExecutionException {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    Path f = new Path("/" + 
name.getMethodName());<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    FanOutOneBlockAsyncDFSOutput out = 
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true,<a 
name="line.191"></a>
-<span class="sourceLineNo">192</span>      false, (short) 3, 
FS.getDefaultBlockSize(), eventLoop, CHANNEL_CLASS);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    Thread.sleep(READ_TIMEOUT_MS * 2);<a 
name="line.193"></a>
-<span class="sourceLineNo">194</span>    // the connection to datanode should 
still alive.<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    writeAndVerify(FS, f, out);<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>  /**<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   * This is important for fencing when 
recover from RS crash.<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 testCreateParentFailed() 
throws IOException {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    Path f = new Path("/" + 
name.getMethodName() + "/test");<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    try {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true, false, (short) 
3,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        FS.getDefaultBlockSize(), 
eventLoop, CHANNEL_CLASS);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      fail("should fail with parent does 
not exist");<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    } catch (RemoteException e) {<a 
name="line.209"></a>
-<span class="sourceLineNo">210</span>      LOG.info("expected exception 
caught", e);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      
assertThat(e.unwrapRemoteException(), 
instanceOf(FileNotFoundException.class));<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  @Test<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  public void 
testConnectToDatanodeFailed()<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      throws IOException, 
ClassNotFoundException, NoSuchMethodException, IllegalAccessException,<a 
name="line.217"></a>
-<span class="sourceLineNo">218</span>      InvocationTargetException, 
InterruptedException, NoSuchFieldException {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    Field xceiverServerDaemonField = 
DataNode.class.getDeclaredField("dataXceiverServer");<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    
xceiverServerDaemonField.setAccessible(true);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    Class&lt;?&gt; xceiverServerClass =<a 
name="line.221"></a>
-<span class="sourceLineNo">222</span>        
Class.forName("org.apache.hadoop.hdfs.server.datanode.DataXceiverServer");<a 
name="line.222"></a>
-<span class="sourceLineNo">223</span>    Method numPeersMethod = 
xceiverServerClass.getDeclaredMethod("getNumPeers");<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    numPeersMethod.setAccessible(true);<a 
name="line.224"></a>
-<span class="sourceLineNo">225</span>    // make one datanode broken<a 
name="line.225"></a>
-<span class="sourceLineNo">226</span>    
TEST_UTIL.getDFSCluster().getDataNodes().get(0).shutdownDatanode(true);<a 
name="line.226"></a>
-<span class="sourceLineNo">227</span>    try {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      Path f = new Path("/test");<a 
name="line.228"></a>
-<span class="sourceLineNo">229</span>      EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      try {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true, false, (short) 
3,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>          FS.getDefaultBlockSize(), 
eventLoop, CHANNEL_CLASS);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        fail("should fail with connection 
error");<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      } catch (IOException e) {<a 
name="line.234"></a>
-<span class="sourceLineNo">235</span>        LOG.info("expected exception 
caught", e);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      for (DataNode dn : 
TEST_UTIL.getDFSCluster().getDataNodes()) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        Daemon daemon = (Daemon) 
xceiverServerDaemonField.get(dn);<a name="line.238"></a>
-<span class="sourceLineNo">239</span>        assertEquals(0, 
numPeersMethod.invoke(daemon.getRunnable()));<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      }<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    } finally {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      
TEST_UTIL.getDFSCluster().restartDataNode(0);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      ensureAllDatanodeAlive();<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><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  @Test<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  public void testWriteLargeChunk() 
throws IOException, InterruptedException, ExecutionException {<a 
name="line.248"></a>
-<span class="sourceLineNo">249</span>    Path f = new Path("/" + 
name.getMethodName());<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    FanOutOneBlockAsyncDFSOutput out = 
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true,<a 
name="line.251"></a>
-<span class="sourceLineNo">252</span>      false, (short) 3, 1024 * 1024 * 
1024, eventLoop, CHANNEL_CLASS);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    byte[] b = new byte[50 * 1024 * 
1024];<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    
ThreadLocalRandom.current().nextBytes(b);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    out.write(b);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    out.flush(false);<a 
name="line.256"></a>
-<span class="sourceLineNo">257</span>    assertEquals(b.length, 
out.flush(false).get().longValue());<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    out.close();<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    assertEquals(b.length, 
FS.getFileStatus(f).getLen());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    byte[] actual = new byte[b.length];<a 
name="line.260"></a>
-<span class="sourceLineNo">261</span>    try (FSDataInputStream in = 
FS.open(f)) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      in.readFully(actual);<a 
name="line.262"></a>
-<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    assertArrayEquals(b, actual);<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">098</span>  static void writeAndVerify(FileSystem 
fs, Path f, AsyncFSOutput out)<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      throws IOException, 
InterruptedException, ExecutionException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    
List&lt;CompletableFuture&lt;Long&gt;&gt; futures = new ArrayList&lt;&gt;();<a 
name="line.100"></a>
+<span class="sourceLineNo">101</span>    byte[] b = new byte[10];<a 
name="line.101"></a>
+<span class="sourceLineNo">102</span>    Random rand = new Random(12345);<a 
name="line.102"></a>
+<span class="sourceLineNo">103</span>    // test pipelined flush<a 
name="line.103"></a>
+<span class="sourceLineNo">104</span>    for (int i = 0; i &lt; 10; i++) {<a 
name="line.104"></a>
+<span class="sourceLineNo">105</span>      rand.nextBytes(b);<a 
name="line.105"></a>
+<span class="sourceLineNo">106</span>      out.write(b);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      futures.add(out.flush(false));<a 
name="line.107"></a>
+<span class="sourceLineNo">108</span>      futures.add(out.flush(false));<a 
name="line.108"></a>
+<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    for (int i = 0; i &lt; 10; i++) {<a 
name="line.110"></a>
+<span class="sourceLineNo">111</span>      assertEquals((i + 1) * b.length, 
futures.get(2 * i).join().longValue());<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      assertEquals((i + 1) * b.length, 
futures.get(2 * i + 1).join().longValue());<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    out.close();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    assertEquals(b.length * 10, 
fs.getFileStatus(f).getLen());<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    byte[] actual = new byte[b.length];<a 
name="line.116"></a>
+<span class="sourceLineNo">117</span>    rand.setSeed(12345);<a 
name="line.117"></a>
+<span class="sourceLineNo">118</span>    try (FSDataInputStream in = 
fs.open(f)) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      for (int i = 0; i &lt; 10; i++) {<a 
name="line.119"></a>
+<span class="sourceLineNo">120</span>        in.readFully(actual);<a 
name="line.120"></a>
+<span class="sourceLineNo">121</span>        rand.nextBytes(b);<a 
name="line.121"></a>
+<span class="sourceLineNo">122</span>        assertArrayEquals(b, actual);<a 
name="line.122"></a>
+<span class="sourceLineNo">123</span>      }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      assertEquals(-1, in.read());<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 test() throws IOException, 
InterruptedException, ExecutionException {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    Path f = new Path("/" + 
name.getMethodName());<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    FanOutOneBlockAsyncDFSOutput out = 
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true,<a 
name="line.132"></a>
+<span class="sourceLineNo">133</span>      false, (short) 3, 
FS.getDefaultBlockSize(), eventLoop, CHANNEL_CLASS);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    writeAndVerify(FS, f, out);<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>  @Test<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public void testRecover() throws 
IOException, InterruptedException, ExecutionException {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    Path f = new Path("/" + 
name.getMethodName());<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    FanOutOneBlockAsyncDFSOutput out = 
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true,<a 
name="line.141"></a>
+<span class="sourceLineNo">142</span>      false, (short) 3, 
FS.getDefaultBlockSize(), eventLoop, CHANNEL_CLASS);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    byte[] b = new byte[10];<a 
name="line.143"></a>
+<span class="sourceLineNo">144</span>    
ThreadLocalRandom.current().nextBytes(b);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    out.write(b, 0, b.length);<a 
name="line.145"></a>
+<span class="sourceLineNo">146</span>    out.flush(false).get();<a 
name="line.146"></a>
+<span class="sourceLineNo">147</span>    // restart one datanode which causes 
one connection broken<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    
TEST_UTIL.getDFSCluster().restartDataNode(0);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    out.write(b, 0, b.length);<a 
name="line.149"></a>
+<span class="sourceLineNo">150</span>    try {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      out.flush(false).get();<a 
name="line.151"></a>
+<span class="sourceLineNo">152</span>      fail("flush should fail");<a 
name="line.152"></a>
+<span class="sourceLineNo">153</span>    } catch (ExecutionException e) {<a 
name="line.153"></a>
+<span class="sourceLineNo">154</span>      // we restarted one datanode so the 
flush should fail<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      LOG.info("expected exception 
caught", e);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    out.recoverAndClose(null);<a 
name="line.157"></a>
+<span class="sourceLineNo">158</span>    assertEquals(b.length, 
FS.getFileStatus(f).getLen());<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    byte[] actual = new byte[b.length];<a 
name="line.159"></a>
+<span class="sourceLineNo">160</span>    try (FSDataInputStream in = 
FS.open(f)) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      in.readFully(actual);<a 
name="line.161"></a>
+<span class="sourceLineNo">162</span>    }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    assertArrayEquals(b, actual);<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>  @Test<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  public void testHeartbeat() throws 
IOException, InterruptedException, ExecutionException {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    Path f = new Path("/" + 
name.getMethodName());<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    FanOutOneBlockAsyncDFSOutput out = 
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true,<a 
name="line.170"></a>
+<span class="sourceLineNo">171</span>      false, (short) 3, 
FS.getDefaultBlockSize(), eventLoop, CHANNEL_CLASS);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    Thread.sleep(READ_TIMEOUT_MS * 2);<a 
name="line.172"></a>
+<span class="sourceLineNo">173</span>    // the connection to datanode should 
still alive.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    writeAndVerify(FS, f, out);<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>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * This is important for fencing when 
recover from RS crash.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  @Test<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  public void testCreateParentFailed() 
throws IOException {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    Path f = new Path("/" + 
name.getMethodName() + "/test");<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    try {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true, false, (short) 
3,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        FS.getDefaultBlockSize(), 
eventLoop, CHANNEL_CLASS);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      fail("should fail with parent does 
not exist");<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    } catch (RemoteException e) {<a 
name="line.188"></a>
+<span class="sourceLineNo">189</span>      LOG.info("expected exception 
caught", e);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      
assertThat(e.unwrapRemoteException(), 
instanceOf(FileNotFoundException.class));<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><a name="line.193"></a>
+<span class="sourceLineNo">194</span>  @Test<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public void 
testConnectToDatanodeFailed()<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      throws IOException, 
ClassNotFoundException, NoSuchMethodException, IllegalAccessException,<a 
name="line.196"></a>
+<span class="sourceLineNo">197</span>      InvocationTargetException, 
InterruptedException, NoSuchFieldException {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    Field xceiverServerDaemonField = 
DataNode.class.getDeclaredField("dataXceiverServer");<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    
xceiverServerDaemonField.setAccessible(true);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    Class&lt;?&gt; xceiverServerClass =<a 
name="line.200"></a>
+<span class="sourceLineNo">201</span>      
Class.forName("org.apache.hadoop.hdfs.server.datanode.DataXceiverServer");<a 
name="line.201"></a>
+<span class="sourceLineNo">202</span>    Method numPeersMethod = 
xceiverServerClass.getDeclaredMethod("getNumPeers");<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    numPeersMethod.setAccessible(true);<a 
name="line.203"></a>
+<span class="sourceLineNo">204</span>    // make one datanode broken<a 
name="line.204"></a>
+<span class="sourceLineNo">205</span>    DataNodeProperties dnProp = 
TEST_UTIL.getDFSCluster().stopDataNode(0);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    Path f = new Path("/test");<a 
name="line.206"></a>
+<span class="sourceLineNo">207</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    try (FanOutOneBlockAsyncDFSOutput 
output = FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS,<a 
name="line.208"></a>
+<span class="sourceLineNo">209</span>      f, true, false, (short) 3, 
FS.getDefaultBlockSize(), eventLoop, CHANNEL_CLASS)) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      // should exclude the dead dn when 
retry so here we only have 2 DNs in pipeline<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      assertEquals(2, 
output.getPipeline().length);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    } finally {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      
TEST_UTIL.getDFSCluster().restartDataNode(dnProp);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  @Test<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  public void testWriteLargeChunk() 
throws IOException, InterruptedException, ExecutionException {<a 
name="line.218"></a>
+<span class="sourceLineNo">219</span>    Path f = new Path("/" + 
name.getMethodName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    EventLoop eventLoop = 
EVENT_LOOP_GROUP.next();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    FanOutOneBlockAsyncDFSOutput out = 
FanOutOneBlockAsyncDFSOutputHelper.createOutput(FS, f, true,<a 
name="line.221"></a>
+<span class="sourceLineNo">222</span>      false, (short) 3, 1024 * 1024 * 
1024, eventLoop, CHANNEL_CLASS);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    byte[] b = new byte[50 * 1024 * 
1024];<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    
ThreadLocalRandom.current().nextBytes(b);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    out.write(b);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    out.flush(false);<a 
name="line.226"></a>
+<span class="sourceLineNo">227</span>    assertEquals(b.length, 
out.flush(false).get().longValue());<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    out.close();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    assertEquals(b.length, 
FS.getFileStatus(f).getLen());<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    byte[] actual = new byte[b.length];<a 
name="line.230"></a>
+<span class="sourceLineNo">231</span>    try (FSDataInputStream in = 
FS.open(f)) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      in.readFully(actual);<a 
name="line.232"></a>
+<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    assertArrayEquals(b, actual);<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>
 
 
 

Reply via email to