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/05/02 14:47:23 UTC

[3/8] hbase-site git commit: Published site at 2e9b96e4f14c2802b59c6037cbfe4a427ec93bea.

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.PipelineAckStatusGetter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.PipelineAckStatusGetter.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.PipelineAckStatusGetter.html
index ad7bc92..eb6a26e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.PipelineAckStatusGetter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.PipelineAckStatusGetter.html
@@ -808,104 +808,101 @@
 <span class="sourceLineNo">800</span>        } else {<a name="line.800"></a>
 <span class="sourceLineNo">801</span>          throw e.unwrapRemoteException();<a name="line.801"></a>
 <span class="sourceLineNo">802</span>        }<a name="line.802"></a>
-<span class="sourceLineNo">803</span>      } catch (NameNodeException e) {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>        throw e;<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      } catch (IOException e) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        LOG.warn("create fan-out dfs output {} failed, retry = {}", src, retry, e);<a name="line.806"></a>
-<span class="sourceLineNo">807</span>        if (retry &gt;= createMaxRetries) {<a name="line.807"></a>
-<span class="sourceLineNo">808</span>          throw e;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        }<a name="line.809"></a>
-<span class="sourceLineNo">810</span>        // overwrite the old broken file.<a name="line.810"></a>
-<span class="sourceLineNo">811</span>        overwrite = true;<a name="line.811"></a>
-<span class="sourceLineNo">812</span>        try {<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.813"></a>
-<span class="sourceLineNo">814</span>        } catch (InterruptedException ie) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>          throw new InterruptedIOException();<a name="line.815"></a>
-<span class="sourceLineNo">816</span>        }<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      } finally {<a name="line.817"></a>
-<span class="sourceLineNo">818</span>        if (!succ) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>          if (futureList != null) {<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            for (Future&lt;Channel&gt; f : futureList) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>              f.addListener(new FutureListener&lt;Channel&gt;() {<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>                @Override<a name="line.823"></a>
-<span class="sourceLineNo">824</span>                public void operationComplete(Future&lt;Channel&gt; future) throws Exception {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>                  if (future.isSuccess()) {<a name="line.825"></a>
-<span class="sourceLineNo">826</span>                    future.getNow().close();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>                  }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>                }<a name="line.828"></a>
-<span class="sourceLineNo">829</span>              });<a name="line.829"></a>
-<span class="sourceLineNo">830</span>            }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>          }<a name="line.831"></a>
-<span class="sourceLineNo">832</span>          endFileLease(client, stat.getFileId());<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          fsUtils.recoverFileLease(dfs, new Path(src), conf, new CancelOnClose(client));<a name="line.833"></a>
-<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      }<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    }<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>  /**<a name="line.839"></a>
-<span class="sourceLineNo">840</span>   * Create a {@link FanOutOneBlockAsyncDFSOutput}. The method maybe blocked so do not call it<a name="line.840"></a>
-<span class="sourceLineNo">841</span>   * inside an {@link EventLoop}.<a name="line.841"></a>
-<span class="sourceLineNo">842</span>   */<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  public static FanOutOneBlockAsyncDFSOutput createOutput(DistributedFileSystem dfs, Path f,<a name="line.843"></a>
-<span class="sourceLineNo">844</span>      boolean overwrite, boolean createParent, short replication, long blockSize,<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      EventLoopGroup eventLoopGroup, Class&lt;? extends Channel&gt; channelClass) throws IOException {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    return new FileSystemLinkResolver&lt;FanOutOneBlockAsyncDFSOutput&gt;() {<a name="line.846"></a>
-<span class="sourceLineNo">847</span><a name="line.847"></a>
-<span class="sourceLineNo">848</span>      @Override<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      public FanOutOneBlockAsyncDFSOutput doCall(Path p)<a name="line.849"></a>
-<span class="sourceLineNo">850</span>          throws IOException, UnresolvedLinkException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        return createOutput(dfs, p.toUri().getPath(), overwrite, createParent, replication,<a name="line.851"></a>
-<span class="sourceLineNo">852</span>          blockSize, eventLoopGroup, channelClass);<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
-<span class="sourceLineNo">854</span><a name="line.854"></a>
-<span class="sourceLineNo">855</span>      @Override<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      public FanOutOneBlockAsyncDFSOutput next(FileSystem fs, Path p) throws IOException {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        throw new UnsupportedOperationException();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    }.resolve(dfs, f);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>  }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span>  public static boolean shouldRetryCreate(RemoteException e) {<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    // RetryStartFileException is introduced in HDFS 2.6+, so here we can only use the class name.<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    // For exceptions other than this, we just throw it out. This is same with<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // DFSOutputStream.newStreamForCreate.<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    return e.getClassName().endsWith("RetryStartFileException");<a name="line.866"></a>
-<span class="sourceLineNo">867</span>  }<a name="line.867"></a>
-<span class="sourceLineNo">868</span><a name="line.868"></a>
-<span class="sourceLineNo">869</span>  static void completeFile(DFSClient client, ClientProtocol namenode, String src, String clientName,<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      ExtendedBlock block, long fileId) {<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    for (int retry = 0;; retry++) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      try {<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        if (namenode.complete(src, clientName, block, fileId)) {<a name="line.873"></a>
-<span class="sourceLineNo">874</span>          endFileLease(client, fileId);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>          return;<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        } else {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>          LOG.warn("complete file " + src + " not finished, retry = " + retry);<a name="line.877"></a>
-<span class="sourceLineNo">878</span>        }<a name="line.878"></a>
-<span class="sourceLineNo">879</span>      } catch (RemoteException e) {<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        IOException ioe = e.unwrapRemoteException();<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        if (ioe instanceof LeaseExpiredException) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>          LOG.warn("lease for file " + src + " is expired, give up", e);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>          return;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>        } else {<a name="line.884"></a>
-<span class="sourceLineNo">885</span>          LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        }<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      } catch (Exception e) {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>        LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.888"></a>
-<span class="sourceLineNo">889</span>      }<a name="line.889"></a>
-<span class="sourceLineNo">890</span>      sleepIgnoreInterrupt(retry);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    }<a name="line.891"></a>
-<span class="sourceLineNo">892</span>  }<a name="line.892"></a>
-<span class="sourceLineNo">893</span><a name="line.893"></a>
-<span class="sourceLineNo">894</span>  static void sleepIgnoreInterrupt(int retry) {<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    try {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    } catch (InterruptedException e) {<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>  }<a name="line.899"></a>
-<span class="sourceLineNo">900</span>}<a name="line.900"></a>
+<span class="sourceLineNo">803</span>      } catch (IOException e) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        LOG.warn("create fan-out dfs output {} failed, retry = {}", src, retry, e);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        if (retry &gt;= createMaxRetries) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>          throw e;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        // overwrite the old broken file.<a name="line.808"></a>
+<span class="sourceLineNo">809</span>        overwrite = true;<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        try {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>          Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        } catch (InterruptedException ie) {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>          throw new InterruptedIOException();<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span>      } finally {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>        if (!succ) {<a name="line.816"></a>
+<span class="sourceLineNo">817</span>          if (futureList != null) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            for (Future&lt;Channel&gt; f : futureList) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>              f.addListener(new FutureListener&lt;Channel&gt;() {<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                @Override<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                public void operationComplete(Future&lt;Channel&gt; future) throws Exception {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                  if (future.isSuccess()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                    future.getNow().close();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                  }<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>              });<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>          }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          endFileLease(client, stat.getFileId());<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        }<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    }<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  }<a name="line.834"></a>
+<span class="sourceLineNo">835</span><a name="line.835"></a>
+<span class="sourceLineNo">836</span>  /**<a name="line.836"></a>
+<span class="sourceLineNo">837</span>   * Create a {@link FanOutOneBlockAsyncDFSOutput}. The method maybe blocked so do not call it<a name="line.837"></a>
+<span class="sourceLineNo">838</span>   * inside an {@link EventLoop}.<a name="line.838"></a>
+<span class="sourceLineNo">839</span>   */<a name="line.839"></a>
+<span class="sourceLineNo">840</span>  public static FanOutOneBlockAsyncDFSOutput createOutput(DistributedFileSystem dfs, Path f,<a name="line.840"></a>
+<span class="sourceLineNo">841</span>      boolean overwrite, boolean createParent, short replication, long blockSize,<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      EventLoopGroup eventLoopGroup, Class&lt;? extends Channel&gt; channelClass) throws IOException {<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    return new FileSystemLinkResolver&lt;FanOutOneBlockAsyncDFSOutput&gt;() {<a name="line.843"></a>
+<span class="sourceLineNo">844</span><a name="line.844"></a>
+<span class="sourceLineNo">845</span>      @Override<a name="line.845"></a>
+<span class="sourceLineNo">846</span>      public FanOutOneBlockAsyncDFSOutput doCall(Path p)<a name="line.846"></a>
+<span class="sourceLineNo">847</span>          throws IOException, UnresolvedLinkException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>        return createOutput(dfs, p.toUri().getPath(), overwrite, createParent, replication,<a name="line.848"></a>
+<span class="sourceLineNo">849</span>          blockSize, eventLoopGroup, channelClass);<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      }<a name="line.850"></a>
+<span class="sourceLineNo">851</span><a name="line.851"></a>
+<span class="sourceLineNo">852</span>      @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      public FanOutOneBlockAsyncDFSOutput next(FileSystem fs, Path p) throws IOException {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        throw new UnsupportedOperationException();<a name="line.854"></a>
+<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    }.resolve(dfs, f);<a name="line.856"></a>
+<span class="sourceLineNo">857</span>  }<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>  public static boolean shouldRetryCreate(RemoteException e) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>    // RetryStartFileException is introduced in HDFS 2.6+, so here we can only use the class name.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    // For exceptions other than this, we just throw it out. This is same with<a name="line.861"></a>
+<span class="sourceLineNo">862</span>    // DFSOutputStream.newStreamForCreate.<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    return e.getClassName().endsWith("RetryStartFileException");<a name="line.863"></a>
+<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>  static void completeFile(DFSClient client, ClientProtocol namenode, String src, String clientName,<a name="line.866"></a>
+<span class="sourceLineNo">867</span>      ExtendedBlock block, long fileId) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    for (int retry = 0;; retry++) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      try {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        if (namenode.complete(src, clientName, block, fileId)) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>          endFileLease(client, fileId);<a name="line.871"></a>
+<span class="sourceLineNo">872</span>          return;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        } else {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>          LOG.warn("complete file " + src + " not finished, retry = " + retry);<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        }<a name="line.875"></a>
+<span class="sourceLineNo">876</span>      } catch (RemoteException e) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        IOException ioe = e.unwrapRemoteException();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        if (ioe instanceof LeaseExpiredException) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>          LOG.warn("lease for file " + src + " is expired, give up", e);<a name="line.879"></a>
+<span class="sourceLineNo">880</span>          return;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        } else {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>          LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        }<a name="line.883"></a>
+<span class="sourceLineNo">884</span>      } catch (Exception e) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>        LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>      }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      sleepIgnoreInterrupt(retry);<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>  }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>  static void sleepIgnoreInterrupt(int retry) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>    try {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>      Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    } catch (InterruptedException e) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>  }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>}<a name="line.897"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.StorageTypeSetter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.StorageTypeSetter.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.StorageTypeSetter.html
index ad7bc92..eb6a26e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.StorageTypeSetter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.StorageTypeSetter.html
@@ -808,104 +808,101 @@
 <span class="sourceLineNo">800</span>        } else {<a name="line.800"></a>
 <span class="sourceLineNo">801</span>          throw e.unwrapRemoteException();<a name="line.801"></a>
 <span class="sourceLineNo">802</span>        }<a name="line.802"></a>
-<span class="sourceLineNo">803</span>      } catch (NameNodeException e) {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>        throw e;<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      } catch (IOException e) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        LOG.warn("create fan-out dfs output {} failed, retry = {}", src, retry, e);<a name="line.806"></a>
-<span class="sourceLineNo">807</span>        if (retry &gt;= createMaxRetries) {<a name="line.807"></a>
-<span class="sourceLineNo">808</span>          throw e;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        }<a name="line.809"></a>
-<span class="sourceLineNo">810</span>        // overwrite the old broken file.<a name="line.810"></a>
-<span class="sourceLineNo">811</span>        overwrite = true;<a name="line.811"></a>
-<span class="sourceLineNo">812</span>        try {<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.813"></a>
-<span class="sourceLineNo">814</span>        } catch (InterruptedException ie) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>          throw new InterruptedIOException();<a name="line.815"></a>
-<span class="sourceLineNo">816</span>        }<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      } finally {<a name="line.817"></a>
-<span class="sourceLineNo">818</span>        if (!succ) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>          if (futureList != null) {<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            for (Future&lt;Channel&gt; f : futureList) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>              f.addListener(new FutureListener&lt;Channel&gt;() {<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>                @Override<a name="line.823"></a>
-<span class="sourceLineNo">824</span>                public void operationComplete(Future&lt;Channel&gt; future) throws Exception {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>                  if (future.isSuccess()) {<a name="line.825"></a>
-<span class="sourceLineNo">826</span>                    future.getNow().close();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>                  }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>                }<a name="line.828"></a>
-<span class="sourceLineNo">829</span>              });<a name="line.829"></a>
-<span class="sourceLineNo">830</span>            }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>          }<a name="line.831"></a>
-<span class="sourceLineNo">832</span>          endFileLease(client, stat.getFileId());<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          fsUtils.recoverFileLease(dfs, new Path(src), conf, new CancelOnClose(client));<a name="line.833"></a>
-<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      }<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    }<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>  /**<a name="line.839"></a>
-<span class="sourceLineNo">840</span>   * Create a {@link FanOutOneBlockAsyncDFSOutput}. The method maybe blocked so do not call it<a name="line.840"></a>
-<span class="sourceLineNo">841</span>   * inside an {@link EventLoop}.<a name="line.841"></a>
-<span class="sourceLineNo">842</span>   */<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  public static FanOutOneBlockAsyncDFSOutput createOutput(DistributedFileSystem dfs, Path f,<a name="line.843"></a>
-<span class="sourceLineNo">844</span>      boolean overwrite, boolean createParent, short replication, long blockSize,<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      EventLoopGroup eventLoopGroup, Class&lt;? extends Channel&gt; channelClass) throws IOException {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    return new FileSystemLinkResolver&lt;FanOutOneBlockAsyncDFSOutput&gt;() {<a name="line.846"></a>
-<span class="sourceLineNo">847</span><a name="line.847"></a>
-<span class="sourceLineNo">848</span>      @Override<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      public FanOutOneBlockAsyncDFSOutput doCall(Path p)<a name="line.849"></a>
-<span class="sourceLineNo">850</span>          throws IOException, UnresolvedLinkException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        return createOutput(dfs, p.toUri().getPath(), overwrite, createParent, replication,<a name="line.851"></a>
-<span class="sourceLineNo">852</span>          blockSize, eventLoopGroup, channelClass);<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
-<span class="sourceLineNo">854</span><a name="line.854"></a>
-<span class="sourceLineNo">855</span>      @Override<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      public FanOutOneBlockAsyncDFSOutput next(FileSystem fs, Path p) throws IOException {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        throw new UnsupportedOperationException();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    }.resolve(dfs, f);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>  }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span>  public static boolean shouldRetryCreate(RemoteException e) {<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    // RetryStartFileException is introduced in HDFS 2.6+, so here we can only use the class name.<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    // For exceptions other than this, we just throw it out. This is same with<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // DFSOutputStream.newStreamForCreate.<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    return e.getClassName().endsWith("RetryStartFileException");<a name="line.866"></a>
-<span class="sourceLineNo">867</span>  }<a name="line.867"></a>
-<span class="sourceLineNo">868</span><a name="line.868"></a>
-<span class="sourceLineNo">869</span>  static void completeFile(DFSClient client, ClientProtocol namenode, String src, String clientName,<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      ExtendedBlock block, long fileId) {<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    for (int retry = 0;; retry++) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      try {<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        if (namenode.complete(src, clientName, block, fileId)) {<a name="line.873"></a>
-<span class="sourceLineNo">874</span>          endFileLease(client, fileId);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>          return;<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        } else {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>          LOG.warn("complete file " + src + " not finished, retry = " + retry);<a name="line.877"></a>
-<span class="sourceLineNo">878</span>        }<a name="line.878"></a>
-<span class="sourceLineNo">879</span>      } catch (RemoteException e) {<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        IOException ioe = e.unwrapRemoteException();<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        if (ioe instanceof LeaseExpiredException) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>          LOG.warn("lease for file " + src + " is expired, give up", e);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>          return;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>        } else {<a name="line.884"></a>
-<span class="sourceLineNo">885</span>          LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        }<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      } catch (Exception e) {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>        LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.888"></a>
-<span class="sourceLineNo">889</span>      }<a name="line.889"></a>
-<span class="sourceLineNo">890</span>      sleepIgnoreInterrupt(retry);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    }<a name="line.891"></a>
-<span class="sourceLineNo">892</span>  }<a name="line.892"></a>
-<span class="sourceLineNo">893</span><a name="line.893"></a>
-<span class="sourceLineNo">894</span>  static void sleepIgnoreInterrupt(int retry) {<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    try {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    } catch (InterruptedException e) {<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>  }<a name="line.899"></a>
-<span class="sourceLineNo">900</span>}<a name="line.900"></a>
+<span class="sourceLineNo">803</span>      } catch (IOException e) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        LOG.warn("create fan-out dfs output {} failed, retry = {}", src, retry, e);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        if (retry &gt;= createMaxRetries) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>          throw e;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        // overwrite the old broken file.<a name="line.808"></a>
+<span class="sourceLineNo">809</span>        overwrite = true;<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        try {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>          Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        } catch (InterruptedException ie) {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>          throw new InterruptedIOException();<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span>      } finally {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>        if (!succ) {<a name="line.816"></a>
+<span class="sourceLineNo">817</span>          if (futureList != null) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            for (Future&lt;Channel&gt; f : futureList) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>              f.addListener(new FutureListener&lt;Channel&gt;() {<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                @Override<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                public void operationComplete(Future&lt;Channel&gt; future) throws Exception {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                  if (future.isSuccess()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                    future.getNow().close();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                  }<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>              });<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>          }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          endFileLease(client, stat.getFileId());<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        }<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    }<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  }<a name="line.834"></a>
+<span class="sourceLineNo">835</span><a name="line.835"></a>
+<span class="sourceLineNo">836</span>  /**<a name="line.836"></a>
+<span class="sourceLineNo">837</span>   * Create a {@link FanOutOneBlockAsyncDFSOutput}. The method maybe blocked so do not call it<a name="line.837"></a>
+<span class="sourceLineNo">838</span>   * inside an {@link EventLoop}.<a name="line.838"></a>
+<span class="sourceLineNo">839</span>   */<a name="line.839"></a>
+<span class="sourceLineNo">840</span>  public static FanOutOneBlockAsyncDFSOutput createOutput(DistributedFileSystem dfs, Path f,<a name="line.840"></a>
+<span class="sourceLineNo">841</span>      boolean overwrite, boolean createParent, short replication, long blockSize,<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      EventLoopGroup eventLoopGroup, Class&lt;? extends Channel&gt; channelClass) throws IOException {<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    return new FileSystemLinkResolver&lt;FanOutOneBlockAsyncDFSOutput&gt;() {<a name="line.843"></a>
+<span class="sourceLineNo">844</span><a name="line.844"></a>
+<span class="sourceLineNo">845</span>      @Override<a name="line.845"></a>
+<span class="sourceLineNo">846</span>      public FanOutOneBlockAsyncDFSOutput doCall(Path p)<a name="line.846"></a>
+<span class="sourceLineNo">847</span>          throws IOException, UnresolvedLinkException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>        return createOutput(dfs, p.toUri().getPath(), overwrite, createParent, replication,<a name="line.848"></a>
+<span class="sourceLineNo">849</span>          blockSize, eventLoopGroup, channelClass);<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      }<a name="line.850"></a>
+<span class="sourceLineNo">851</span><a name="line.851"></a>
+<span class="sourceLineNo">852</span>      @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      public FanOutOneBlockAsyncDFSOutput next(FileSystem fs, Path p) throws IOException {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        throw new UnsupportedOperationException();<a name="line.854"></a>
+<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    }.resolve(dfs, f);<a name="line.856"></a>
+<span class="sourceLineNo">857</span>  }<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>  public static boolean shouldRetryCreate(RemoteException e) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>    // RetryStartFileException is introduced in HDFS 2.6+, so here we can only use the class name.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    // For exceptions other than this, we just throw it out. This is same with<a name="line.861"></a>
+<span class="sourceLineNo">862</span>    // DFSOutputStream.newStreamForCreate.<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    return e.getClassName().endsWith("RetryStartFileException");<a name="line.863"></a>
+<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>  static void completeFile(DFSClient client, ClientProtocol namenode, String src, String clientName,<a name="line.866"></a>
+<span class="sourceLineNo">867</span>      ExtendedBlock block, long fileId) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    for (int retry = 0;; retry++) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      try {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        if (namenode.complete(src, clientName, block, fileId)) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>          endFileLease(client, fileId);<a name="line.871"></a>
+<span class="sourceLineNo">872</span>          return;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        } else {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>          LOG.warn("complete file " + src + " not finished, retry = " + retry);<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        }<a name="line.875"></a>
+<span class="sourceLineNo">876</span>      } catch (RemoteException e) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        IOException ioe = e.unwrapRemoteException();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        if (ioe instanceof LeaseExpiredException) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>          LOG.warn("lease for file " + src + " is expired, give up", e);<a name="line.879"></a>
+<span class="sourceLineNo">880</span>          return;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        } else {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>          LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        }<a name="line.883"></a>
+<span class="sourceLineNo">884</span>      } catch (Exception e) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>        LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>      }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      sleepIgnoreInterrupt(retry);<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>  }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>  static void sleepIgnoreInterrupt(int retry) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>    try {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>      Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    } catch (InterruptedException e) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>  }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>}<a name="line.897"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.html
index ad7bc92..eb6a26e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.html
@@ -808,104 +808,101 @@
 <span class="sourceLineNo">800</span>        } else {<a name="line.800"></a>
 <span class="sourceLineNo">801</span>          throw e.unwrapRemoteException();<a name="line.801"></a>
 <span class="sourceLineNo">802</span>        }<a name="line.802"></a>
-<span class="sourceLineNo">803</span>      } catch (NameNodeException e) {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>        throw e;<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      } catch (IOException e) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        LOG.warn("create fan-out dfs output {} failed, retry = {}", src, retry, e);<a name="line.806"></a>
-<span class="sourceLineNo">807</span>        if (retry &gt;= createMaxRetries) {<a name="line.807"></a>
-<span class="sourceLineNo">808</span>          throw e;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        }<a name="line.809"></a>
-<span class="sourceLineNo">810</span>        // overwrite the old broken file.<a name="line.810"></a>
-<span class="sourceLineNo">811</span>        overwrite = true;<a name="line.811"></a>
-<span class="sourceLineNo">812</span>        try {<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.813"></a>
-<span class="sourceLineNo">814</span>        } catch (InterruptedException ie) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>          throw new InterruptedIOException();<a name="line.815"></a>
-<span class="sourceLineNo">816</span>        }<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      } finally {<a name="line.817"></a>
-<span class="sourceLineNo">818</span>        if (!succ) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>          if (futureList != null) {<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            for (Future&lt;Channel&gt; f : futureList) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>              f.addListener(new FutureListener&lt;Channel&gt;() {<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>                @Override<a name="line.823"></a>
-<span class="sourceLineNo">824</span>                public void operationComplete(Future&lt;Channel&gt; future) throws Exception {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>                  if (future.isSuccess()) {<a name="line.825"></a>
-<span class="sourceLineNo">826</span>                    future.getNow().close();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>                  }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>                }<a name="line.828"></a>
-<span class="sourceLineNo">829</span>              });<a name="line.829"></a>
-<span class="sourceLineNo">830</span>            }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>          }<a name="line.831"></a>
-<span class="sourceLineNo">832</span>          endFileLease(client, stat.getFileId());<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          fsUtils.recoverFileLease(dfs, new Path(src), conf, new CancelOnClose(client));<a name="line.833"></a>
-<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      }<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    }<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>  /**<a name="line.839"></a>
-<span class="sourceLineNo">840</span>   * Create a {@link FanOutOneBlockAsyncDFSOutput}. The method maybe blocked so do not call it<a name="line.840"></a>
-<span class="sourceLineNo">841</span>   * inside an {@link EventLoop}.<a name="line.841"></a>
-<span class="sourceLineNo">842</span>   */<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  public static FanOutOneBlockAsyncDFSOutput createOutput(DistributedFileSystem dfs, Path f,<a name="line.843"></a>
-<span class="sourceLineNo">844</span>      boolean overwrite, boolean createParent, short replication, long blockSize,<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      EventLoopGroup eventLoopGroup, Class&lt;? extends Channel&gt; channelClass) throws IOException {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    return new FileSystemLinkResolver&lt;FanOutOneBlockAsyncDFSOutput&gt;() {<a name="line.846"></a>
-<span class="sourceLineNo">847</span><a name="line.847"></a>
-<span class="sourceLineNo">848</span>      @Override<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      public FanOutOneBlockAsyncDFSOutput doCall(Path p)<a name="line.849"></a>
-<span class="sourceLineNo">850</span>          throws IOException, UnresolvedLinkException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        return createOutput(dfs, p.toUri().getPath(), overwrite, createParent, replication,<a name="line.851"></a>
-<span class="sourceLineNo">852</span>          blockSize, eventLoopGroup, channelClass);<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
-<span class="sourceLineNo">854</span><a name="line.854"></a>
-<span class="sourceLineNo">855</span>      @Override<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      public FanOutOneBlockAsyncDFSOutput next(FileSystem fs, Path p) throws IOException {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        throw new UnsupportedOperationException();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    }.resolve(dfs, f);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>  }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span>  public static boolean shouldRetryCreate(RemoteException e) {<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    // RetryStartFileException is introduced in HDFS 2.6+, so here we can only use the class name.<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    // For exceptions other than this, we just throw it out. This is same with<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // DFSOutputStream.newStreamForCreate.<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    return e.getClassName().endsWith("RetryStartFileException");<a name="line.866"></a>
-<span class="sourceLineNo">867</span>  }<a name="line.867"></a>
-<span class="sourceLineNo">868</span><a name="line.868"></a>
-<span class="sourceLineNo">869</span>  static void completeFile(DFSClient client, ClientProtocol namenode, String src, String clientName,<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      ExtendedBlock block, long fileId) {<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    for (int retry = 0;; retry++) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      try {<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        if (namenode.complete(src, clientName, block, fileId)) {<a name="line.873"></a>
-<span class="sourceLineNo">874</span>          endFileLease(client, fileId);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>          return;<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        } else {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>          LOG.warn("complete file " + src + " not finished, retry = " + retry);<a name="line.877"></a>
-<span class="sourceLineNo">878</span>        }<a name="line.878"></a>
-<span class="sourceLineNo">879</span>      } catch (RemoteException e) {<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        IOException ioe = e.unwrapRemoteException();<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        if (ioe instanceof LeaseExpiredException) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>          LOG.warn("lease for file " + src + " is expired, give up", e);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>          return;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>        } else {<a name="line.884"></a>
-<span class="sourceLineNo">885</span>          LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        }<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      } catch (Exception e) {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>        LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.888"></a>
-<span class="sourceLineNo">889</span>      }<a name="line.889"></a>
-<span class="sourceLineNo">890</span>      sleepIgnoreInterrupt(retry);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    }<a name="line.891"></a>
-<span class="sourceLineNo">892</span>  }<a name="line.892"></a>
-<span class="sourceLineNo">893</span><a name="line.893"></a>
-<span class="sourceLineNo">894</span>  static void sleepIgnoreInterrupt(int retry) {<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    try {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    } catch (InterruptedException e) {<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>  }<a name="line.899"></a>
-<span class="sourceLineNo">900</span>}<a name="line.900"></a>
+<span class="sourceLineNo">803</span>      } catch (IOException e) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        LOG.warn("create fan-out dfs output {} failed, retry = {}", src, retry, e);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        if (retry &gt;= createMaxRetries) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>          throw e;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        // overwrite the old broken file.<a name="line.808"></a>
+<span class="sourceLineNo">809</span>        overwrite = true;<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        try {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>          Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        } catch (InterruptedException ie) {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>          throw new InterruptedIOException();<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span>      } finally {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>        if (!succ) {<a name="line.816"></a>
+<span class="sourceLineNo">817</span>          if (futureList != null) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            for (Future&lt;Channel&gt; f : futureList) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>              f.addListener(new FutureListener&lt;Channel&gt;() {<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                @Override<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                public void operationComplete(Future&lt;Channel&gt; future) throws Exception {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                  if (future.isSuccess()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                    future.getNow().close();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                  }<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>              });<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>          }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          endFileLease(client, stat.getFileId());<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        }<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    }<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  }<a name="line.834"></a>
+<span class="sourceLineNo">835</span><a name="line.835"></a>
+<span class="sourceLineNo">836</span>  /**<a name="line.836"></a>
+<span class="sourceLineNo">837</span>   * Create a {@link FanOutOneBlockAsyncDFSOutput}. The method maybe blocked so do not call it<a name="line.837"></a>
+<span class="sourceLineNo">838</span>   * inside an {@link EventLoop}.<a name="line.838"></a>
+<span class="sourceLineNo">839</span>   */<a name="line.839"></a>
+<span class="sourceLineNo">840</span>  public static FanOutOneBlockAsyncDFSOutput createOutput(DistributedFileSystem dfs, Path f,<a name="line.840"></a>
+<span class="sourceLineNo">841</span>      boolean overwrite, boolean createParent, short replication, long blockSize,<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      EventLoopGroup eventLoopGroup, Class&lt;? extends Channel&gt; channelClass) throws IOException {<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    return new FileSystemLinkResolver&lt;FanOutOneBlockAsyncDFSOutput&gt;() {<a name="line.843"></a>
+<span class="sourceLineNo">844</span><a name="line.844"></a>
+<span class="sourceLineNo">845</span>      @Override<a name="line.845"></a>
+<span class="sourceLineNo">846</span>      public FanOutOneBlockAsyncDFSOutput doCall(Path p)<a name="line.846"></a>
+<span class="sourceLineNo">847</span>          throws IOException, UnresolvedLinkException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>        return createOutput(dfs, p.toUri().getPath(), overwrite, createParent, replication,<a name="line.848"></a>
+<span class="sourceLineNo">849</span>          blockSize, eventLoopGroup, channelClass);<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      }<a name="line.850"></a>
+<span class="sourceLineNo">851</span><a name="line.851"></a>
+<span class="sourceLineNo">852</span>      @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      public FanOutOneBlockAsyncDFSOutput next(FileSystem fs, Path p) throws IOException {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        throw new UnsupportedOperationException();<a name="line.854"></a>
+<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    }.resolve(dfs, f);<a name="line.856"></a>
+<span class="sourceLineNo">857</span>  }<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>  public static boolean shouldRetryCreate(RemoteException e) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>    // RetryStartFileException is introduced in HDFS 2.6+, so here we can only use the class name.<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    // For exceptions other than this, we just throw it out. This is same with<a name="line.861"></a>
+<span class="sourceLineNo">862</span>    // DFSOutputStream.newStreamForCreate.<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    return e.getClassName().endsWith("RetryStartFileException");<a name="line.863"></a>
+<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>  static void completeFile(DFSClient client, ClientProtocol namenode, String src, String clientName,<a name="line.866"></a>
+<span class="sourceLineNo">867</span>      ExtendedBlock block, long fileId) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    for (int retry = 0;; retry++) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      try {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        if (namenode.complete(src, clientName, block, fileId)) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>          endFileLease(client, fileId);<a name="line.871"></a>
+<span class="sourceLineNo">872</span>          return;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        } else {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>          LOG.warn("complete file " + src + " not finished, retry = " + retry);<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        }<a name="line.875"></a>
+<span class="sourceLineNo">876</span>      } catch (RemoteException e) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        IOException ioe = e.unwrapRemoteException();<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        if (ioe instanceof LeaseExpiredException) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>          LOG.warn("lease for file " + src + " is expired, give up", e);<a name="line.879"></a>
+<span class="sourceLineNo">880</span>          return;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        } else {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>          LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        }<a name="line.883"></a>
+<span class="sourceLineNo">884</span>      } catch (Exception e) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>        LOG.warn("complete file " + src + " failed, retry = " + retry, e);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>      }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      sleepIgnoreInterrupt(retry);<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
+<span class="sourceLineNo">889</span>  }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>  static void sleepIgnoreInterrupt(int retry) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>    try {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>      Thread.sleep(ConnectionUtils.getPauseTime(100, retry));<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    } catch (InterruptedException e) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>  }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>}<a name="line.897"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/downloads.html
----------------------------------------------------------------------
diff --git a/downloads.html b/downloads.html
index 2775b1f..ef70d10 100644
--- a/downloads.html
+++ b/downloads.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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase Downloads</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -366,7 +366,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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 4d49d4e..3f86c8c 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 683626f..6fd3abe 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase™ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 8783c1f..6f85deb 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 608a556..3c6e64d 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 85d1bab..9d5b520 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index b26b9e5..950ff77 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index 8b70543..8de636d 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -459,7 +459,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index 233f7c8..b510a41 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index e11774a..380cf98 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 7357dd2..8927d88 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 8e1453d..27647a0 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase™</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 8b74346..4b11639 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index c7e4004..d66991b 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 6ce9af7..1b49bdc 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 9ebb449..6d3329c 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index ce11b06..9fa89b8 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 3847da7..eb5d64d 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 75f4c05..6d0109f 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index 52ec3cc..373e8d9 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase™ Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 82368bd..201f15e 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index c129180..1e38067 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="20180501" />
+    <meta name="Date-Revision-yyyymmdd" content="20180502" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 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-05-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index f6264df..ecb51c5 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -1555,6 +1555,7 @@
 <li><a href="org/apache/hadoop/hbase/types/TestOrderedBlobVar.html" title="class in org.apache.hadoop.hbase.types" target="classFrame">TestOrderedBlobVar</a></li>
 <li><a href="org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">TestOrderedBytes</a></li>
 <li><a href="org/apache/hadoop/hbase/types/TestOrderedString.html" title="class in org.apache.hadoop.hbase.types" target="classFrame">TestOrderedString</a></li>
+<li><a href="org/apache/hadoop/hbase/io/asyncfs/TestOverwriteFileUnderConstruction.html" title="class in org.apache.hadoop.hbase.io.asyncfs" target="classFrame">TestOverwriteFileUnderConstruction</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/TestPageFilter.html" title="class in org.apache.hadoop.hbase.filter" target="classFrame">TestPageFilter</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestParallelPut.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestParallelPut</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestParallelPut.Putter.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestParallelPut.Putter</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/c3fc94f0/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index 4d56c33..6078263 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -1555,6 +1555,7 @@
 <li><a href="org/apache/hadoop/hbase/types/TestOrderedBlobVar.html" title="class in org.apache.hadoop.hbase.types">TestOrderedBlobVar</a></li>
 <li><a href="org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util">TestOrderedBytes</a></li>
 <li><a href="org/apache/hadoop/hbase/types/TestOrderedString.html" title="class in org.apache.hadoop.hbase.types">TestOrderedString</a></li>
+<li><a href="org/apache/hadoop/hbase/io/asyncfs/TestOverwriteFileUnderConstruction.html" title="class in org.apache.hadoop.hbase.io.asyncfs">TestOverwriteFileUnderConstruction</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/TestPageFilter.html" title="class in org.apache.hadoop.hbase.filter">TestPageFilter</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestParallelPut.html" title="class in org.apache.hadoop.hbase.regionserver">TestParallelPut</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestParallelPut.Putter.html" title="class in org.apache.hadoop.hbase.regionserver">TestParallelPut.Putter</a></li>