http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
index e63cd50..d8c0d2b 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
@@ -422,7 +422,7 @@
 <span class="sourceLineNo">414</span>  }<a name="line.414"></a>
 <span class="sourceLineNo">415</span><a name="line.415"></a>
 <span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * {@link #listTables(boolean)}<a 
name="line.417"></a>
+<span class="sourceLineNo">417</span>   * {@link 
#listTableDescriptors(boolean)}<a name="line.417"></a>
 <span class="sourceLineNo">418</span>   */<a name="line.418"></a>
 <span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
 <span class="sourceLineNo">420</span>  public 
CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; 
listTableDescriptors(Pattern pattern,<a name="line.420"></a>
@@ -3476,16 +3476,79 @@
 <span class="sourceLineNo">3468</span>    return future;<a 
name="line.3468"></a>
 <span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
 <span class="sourceLineNo">3470</span><a name="line.3470"></a>
-<span class="sourceLineNo">3471</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3471"></a>
-<span class="sourceLineNo">3472</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3472"></a>
-<span class="sourceLineNo">3473</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3473"></a>
-<span class="sourceLineNo">3474</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3474"></a>
-<span class="sourceLineNo">3475</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3475"></a>
-<span class="sourceLineNo">3476</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a>
-<span class="sourceLineNo">3477</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a>
-<span class="sourceLineNo">3478</span>      .serverName(serverName).call();<a 
name="line.3478"></a>
-<span class="sourceLineNo">3479</span>  }<a name="line.3479"></a>
-<span class="sourceLineNo">3480</span>}<a name="line.3480"></a>
+<span class="sourceLineNo">3471</span>  @Override<a name="line.3471"></a>
+<span class="sourceLineNo">3472</span>  public CompletableFuture&lt;Void&gt; 
cloneTableSchema(TableName tableName, TableName newTableName,<a 
name="line.3472"></a>
+<span class="sourceLineNo">3473</span>      boolean preserveSplits) {<a 
name="line.3473"></a>
+<span class="sourceLineNo">3474</span>    CompletableFuture&lt;Void&gt; future 
= new CompletableFuture&lt;&gt;();<a name="line.3474"></a>
+<span class="sourceLineNo">3475</span>    
tableExists(tableName).whenComplete(<a name="line.3475"></a>
+<span class="sourceLineNo">3476</span>      (exist, err) -&gt; {<a 
name="line.3476"></a>
+<span class="sourceLineNo">3477</span>        if (err != null) {<a 
name="line.3477"></a>
+<span class="sourceLineNo">3478</span>          
future.completeExceptionally(err);<a name="line.3478"></a>
+<span class="sourceLineNo">3479</span>          return;<a name="line.3479"></a>
+<span class="sourceLineNo">3480</span>        }<a name="line.3480"></a>
+<span class="sourceLineNo">3481</span>        if (!exist) {<a 
name="line.3481"></a>
+<span class="sourceLineNo">3482</span>          
future.completeExceptionally(new TableNotFoundException(tableName));<a 
name="line.3482"></a>
+<span class="sourceLineNo">3483</span>          return;<a name="line.3483"></a>
+<span class="sourceLineNo">3484</span>        }<a name="line.3484"></a>
+<span class="sourceLineNo">3485</span>        
tableExists(newTableName).whenComplete(<a name="line.3485"></a>
+<span class="sourceLineNo">3486</span>          (exist1, err1) -&gt; {<a 
name="line.3486"></a>
+<span class="sourceLineNo">3487</span>            if (err1 != null) {<a 
name="line.3487"></a>
+<span class="sourceLineNo">3488</span>              
future.completeExceptionally(err1);<a name="line.3488"></a>
+<span class="sourceLineNo">3489</span>              return;<a 
name="line.3489"></a>
+<span class="sourceLineNo">3490</span>            }<a name="line.3490"></a>
+<span class="sourceLineNo">3491</span>            if (exist1) {<a 
name="line.3491"></a>
+<span class="sourceLineNo">3492</span>              
future.completeExceptionally(new TableExistsException(newTableName));<a 
name="line.3492"></a>
+<span class="sourceLineNo">3493</span>              return;<a 
name="line.3493"></a>
+<span class="sourceLineNo">3494</span>            }<a name="line.3494"></a>
+<span class="sourceLineNo">3495</span>            
getDescriptor(tableName).whenComplete(<a name="line.3495"></a>
+<span class="sourceLineNo">3496</span>              (tableDesc, err2) -&gt; 
{<a name="line.3496"></a>
+<span class="sourceLineNo">3497</span>                if (err2 != null) {<a 
name="line.3497"></a>
+<span class="sourceLineNo">3498</span>                  
future.completeExceptionally(err2);<a name="line.3498"></a>
+<span class="sourceLineNo">3499</span>                  return;<a 
name="line.3499"></a>
+<span class="sourceLineNo">3500</span>                }<a name="line.3500"></a>
+<span class="sourceLineNo">3501</span>                TableDescriptor 
newTableDesc<a name="line.3501"></a>
+<span class="sourceLineNo">3502</span>                    = 
TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a>
+<span class="sourceLineNo">3503</span>                if (preserveSplits) {<a 
name="line.3503"></a>
+<span class="sourceLineNo">3504</span>                  
getTableSplits(tableName).whenComplete((splits, err3) -&gt; {<a 
name="line.3504"></a>
+<span class="sourceLineNo">3505</span>                    if (err3 != null) 
{<a name="line.3505"></a>
+<span class="sourceLineNo">3506</span>                      
future.completeExceptionally(err3);<a name="line.3506"></a>
+<span class="sourceLineNo">3507</span>                    } else {<a 
name="line.3507"></a>
+<span class="sourceLineNo">3508</span>                      
createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a>
+<span class="sourceLineNo">3509</span>                        (result, err4) 
-&gt; {<a name="line.3509"></a>
+<span class="sourceLineNo">3510</span>                          if (err4 != 
null) {<a name="line.3510"></a>
+<span class="sourceLineNo">3511</span>                            
future.completeExceptionally(err4);<a name="line.3511"></a>
+<span class="sourceLineNo">3512</span>                          } else {<a 
name="line.3512"></a>
+<span class="sourceLineNo">3513</span>                            
future.complete(result);<a name="line.3513"></a>
+<span class="sourceLineNo">3514</span>                          }<a 
name="line.3514"></a>
+<span class="sourceLineNo">3515</span>                        });<a 
name="line.3515"></a>
+<span class="sourceLineNo">3516</span>                    }<a 
name="line.3516"></a>
+<span class="sourceLineNo">3517</span>                  });<a 
name="line.3517"></a>
+<span class="sourceLineNo">3518</span>                } else {<a 
name="line.3518"></a>
+<span class="sourceLineNo">3519</span>                  
createTable(newTableDesc).whenComplete(<a name="line.3519"></a>
+<span class="sourceLineNo">3520</span>                    (result, err5) -&gt; 
{<a name="line.3520"></a>
+<span class="sourceLineNo">3521</span>                      if (err5 != null) 
{<a name="line.3521"></a>
+<span class="sourceLineNo">3522</span>                        
future.completeExceptionally(err5);<a name="line.3522"></a>
+<span class="sourceLineNo">3523</span>                      } else {<a 
name="line.3523"></a>
+<span class="sourceLineNo">3524</span>                        
future.complete(result);<a name="line.3524"></a>
+<span class="sourceLineNo">3525</span>                      }<a 
name="line.3525"></a>
+<span class="sourceLineNo">3526</span>                    });<a 
name="line.3526"></a>
+<span class="sourceLineNo">3527</span>                }<a name="line.3527"></a>
+<span class="sourceLineNo">3528</span>              });<a name="line.3528"></a>
+<span class="sourceLineNo">3529</span>          });<a name="line.3529"></a>
+<span class="sourceLineNo">3530</span>      });<a name="line.3530"></a>
+<span class="sourceLineNo">3531</span>    return future;<a 
name="line.3531"></a>
+<span class="sourceLineNo">3532</span>  }<a name="line.3532"></a>
+<span class="sourceLineNo">3533</span><a name="line.3533"></a>
+<span class="sourceLineNo">3534</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3534"></a>
+<span class="sourceLineNo">3535</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3535"></a>
+<span class="sourceLineNo">3536</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3536"></a>
+<span class="sourceLineNo">3537</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3537"></a>
+<span class="sourceLineNo">3538</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3538"></a>
+<span class="sourceLineNo">3539</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a>
+<span class="sourceLineNo">3540</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a>
+<span class="sourceLineNo">3541</span>      .serverName(serverName).call();<a 
name="line.3541"></a>
+<span class="sourceLineNo">3542</span>  }<a name="line.3542"></a>
+<span class="sourceLineNo">3543</span>}<a name="line.3543"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
index e63cd50..d8c0d2b 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
@@ -422,7 +422,7 @@
 <span class="sourceLineNo">414</span>  }<a name="line.414"></a>
 <span class="sourceLineNo">415</span><a name="line.415"></a>
 <span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * {@link #listTables(boolean)}<a 
name="line.417"></a>
+<span class="sourceLineNo">417</span>   * {@link 
#listTableDescriptors(boolean)}<a name="line.417"></a>
 <span class="sourceLineNo">418</span>   */<a name="line.418"></a>
 <span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
 <span class="sourceLineNo">420</span>  public 
CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; 
listTableDescriptors(Pattern pattern,<a name="line.420"></a>
@@ -3476,16 +3476,79 @@
 <span class="sourceLineNo">3468</span>    return future;<a 
name="line.3468"></a>
 <span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
 <span class="sourceLineNo">3470</span><a name="line.3470"></a>
-<span class="sourceLineNo">3471</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3471"></a>
-<span class="sourceLineNo">3472</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3472"></a>
-<span class="sourceLineNo">3473</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3473"></a>
-<span class="sourceLineNo">3474</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3474"></a>
-<span class="sourceLineNo">3475</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3475"></a>
-<span class="sourceLineNo">3476</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a>
-<span class="sourceLineNo">3477</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a>
-<span class="sourceLineNo">3478</span>      .serverName(serverName).call();<a 
name="line.3478"></a>
-<span class="sourceLineNo">3479</span>  }<a name="line.3479"></a>
-<span class="sourceLineNo">3480</span>}<a name="line.3480"></a>
+<span class="sourceLineNo">3471</span>  @Override<a name="line.3471"></a>
+<span class="sourceLineNo">3472</span>  public CompletableFuture&lt;Void&gt; 
cloneTableSchema(TableName tableName, TableName newTableName,<a 
name="line.3472"></a>
+<span class="sourceLineNo">3473</span>      boolean preserveSplits) {<a 
name="line.3473"></a>
+<span class="sourceLineNo">3474</span>    CompletableFuture&lt;Void&gt; future 
= new CompletableFuture&lt;&gt;();<a name="line.3474"></a>
+<span class="sourceLineNo">3475</span>    
tableExists(tableName).whenComplete(<a name="line.3475"></a>
+<span class="sourceLineNo">3476</span>      (exist, err) -&gt; {<a 
name="line.3476"></a>
+<span class="sourceLineNo">3477</span>        if (err != null) {<a 
name="line.3477"></a>
+<span class="sourceLineNo">3478</span>          
future.completeExceptionally(err);<a name="line.3478"></a>
+<span class="sourceLineNo">3479</span>          return;<a name="line.3479"></a>
+<span class="sourceLineNo">3480</span>        }<a name="line.3480"></a>
+<span class="sourceLineNo">3481</span>        if (!exist) {<a 
name="line.3481"></a>
+<span class="sourceLineNo">3482</span>          
future.completeExceptionally(new TableNotFoundException(tableName));<a 
name="line.3482"></a>
+<span class="sourceLineNo">3483</span>          return;<a name="line.3483"></a>
+<span class="sourceLineNo">3484</span>        }<a name="line.3484"></a>
+<span class="sourceLineNo">3485</span>        
tableExists(newTableName).whenComplete(<a name="line.3485"></a>
+<span class="sourceLineNo">3486</span>          (exist1, err1) -&gt; {<a 
name="line.3486"></a>
+<span class="sourceLineNo">3487</span>            if (err1 != null) {<a 
name="line.3487"></a>
+<span class="sourceLineNo">3488</span>              
future.completeExceptionally(err1);<a name="line.3488"></a>
+<span class="sourceLineNo">3489</span>              return;<a 
name="line.3489"></a>
+<span class="sourceLineNo">3490</span>            }<a name="line.3490"></a>
+<span class="sourceLineNo">3491</span>            if (exist1) {<a 
name="line.3491"></a>
+<span class="sourceLineNo">3492</span>              
future.completeExceptionally(new TableExistsException(newTableName));<a 
name="line.3492"></a>
+<span class="sourceLineNo">3493</span>              return;<a 
name="line.3493"></a>
+<span class="sourceLineNo">3494</span>            }<a name="line.3494"></a>
+<span class="sourceLineNo">3495</span>            
getDescriptor(tableName).whenComplete(<a name="line.3495"></a>
+<span class="sourceLineNo">3496</span>              (tableDesc, err2) -&gt; 
{<a name="line.3496"></a>
+<span class="sourceLineNo">3497</span>                if (err2 != null) {<a 
name="line.3497"></a>
+<span class="sourceLineNo">3498</span>                  
future.completeExceptionally(err2);<a name="line.3498"></a>
+<span class="sourceLineNo">3499</span>                  return;<a 
name="line.3499"></a>
+<span class="sourceLineNo">3500</span>                }<a name="line.3500"></a>
+<span class="sourceLineNo">3501</span>                TableDescriptor 
newTableDesc<a name="line.3501"></a>
+<span class="sourceLineNo">3502</span>                    = 
TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a>
+<span class="sourceLineNo">3503</span>                if (preserveSplits) {<a 
name="line.3503"></a>
+<span class="sourceLineNo">3504</span>                  
getTableSplits(tableName).whenComplete((splits, err3) -&gt; {<a 
name="line.3504"></a>
+<span class="sourceLineNo">3505</span>                    if (err3 != null) 
{<a name="line.3505"></a>
+<span class="sourceLineNo">3506</span>                      
future.completeExceptionally(err3);<a name="line.3506"></a>
+<span class="sourceLineNo">3507</span>                    } else {<a 
name="line.3507"></a>
+<span class="sourceLineNo">3508</span>                      
createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a>
+<span class="sourceLineNo">3509</span>                        (result, err4) 
-&gt; {<a name="line.3509"></a>
+<span class="sourceLineNo">3510</span>                          if (err4 != 
null) {<a name="line.3510"></a>
+<span class="sourceLineNo">3511</span>                            
future.completeExceptionally(err4);<a name="line.3511"></a>
+<span class="sourceLineNo">3512</span>                          } else {<a 
name="line.3512"></a>
+<span class="sourceLineNo">3513</span>                            
future.complete(result);<a name="line.3513"></a>
+<span class="sourceLineNo">3514</span>                          }<a 
name="line.3514"></a>
+<span class="sourceLineNo">3515</span>                        });<a 
name="line.3515"></a>
+<span class="sourceLineNo">3516</span>                    }<a 
name="line.3516"></a>
+<span class="sourceLineNo">3517</span>                  });<a 
name="line.3517"></a>
+<span class="sourceLineNo">3518</span>                } else {<a 
name="line.3518"></a>
+<span class="sourceLineNo">3519</span>                  
createTable(newTableDesc).whenComplete(<a name="line.3519"></a>
+<span class="sourceLineNo">3520</span>                    (result, err5) -&gt; 
{<a name="line.3520"></a>
+<span class="sourceLineNo">3521</span>                      if (err5 != null) 
{<a name="line.3521"></a>
+<span class="sourceLineNo">3522</span>                        
future.completeExceptionally(err5);<a name="line.3522"></a>
+<span class="sourceLineNo">3523</span>                      } else {<a 
name="line.3523"></a>
+<span class="sourceLineNo">3524</span>                        
future.complete(result);<a name="line.3524"></a>
+<span class="sourceLineNo">3525</span>                      }<a 
name="line.3525"></a>
+<span class="sourceLineNo">3526</span>                    });<a 
name="line.3526"></a>
+<span class="sourceLineNo">3527</span>                }<a name="line.3527"></a>
+<span class="sourceLineNo">3528</span>              });<a name="line.3528"></a>
+<span class="sourceLineNo">3529</span>          });<a name="line.3529"></a>
+<span class="sourceLineNo">3530</span>      });<a name="line.3530"></a>
+<span class="sourceLineNo">3531</span>    return future;<a 
name="line.3531"></a>
+<span class="sourceLineNo">3532</span>  }<a name="line.3532"></a>
+<span class="sourceLineNo">3533</span><a name="line.3533"></a>
+<span class="sourceLineNo">3534</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3534"></a>
+<span class="sourceLineNo">3535</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3535"></a>
+<span class="sourceLineNo">3536</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3536"></a>
+<span class="sourceLineNo">3537</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3537"></a>
+<span class="sourceLineNo">3538</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3538"></a>
+<span class="sourceLineNo">3539</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a>
+<span class="sourceLineNo">3540</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a>
+<span class="sourceLineNo">3541</span>      .serverName(serverName).call();<a 
name="line.3541"></a>
+<span class="sourceLineNo">3542</span>  }<a name="line.3542"></a>
+<span class="sourceLineNo">3543</span>}<a name="line.3543"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
index e63cd50..d8c0d2b 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
@@ -422,7 +422,7 @@
 <span class="sourceLineNo">414</span>  }<a name="line.414"></a>
 <span class="sourceLineNo">415</span><a name="line.415"></a>
 <span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * {@link #listTables(boolean)}<a 
name="line.417"></a>
+<span class="sourceLineNo">417</span>   * {@link 
#listTableDescriptors(boolean)}<a name="line.417"></a>
 <span class="sourceLineNo">418</span>   */<a name="line.418"></a>
 <span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
 <span class="sourceLineNo">420</span>  public 
CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; 
listTableDescriptors(Pattern pattern,<a name="line.420"></a>
@@ -3476,16 +3476,79 @@
 <span class="sourceLineNo">3468</span>    return future;<a 
name="line.3468"></a>
 <span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
 <span class="sourceLineNo">3470</span><a name="line.3470"></a>
-<span class="sourceLineNo">3471</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3471"></a>
-<span class="sourceLineNo">3472</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3472"></a>
-<span class="sourceLineNo">3473</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3473"></a>
-<span class="sourceLineNo">3474</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3474"></a>
-<span class="sourceLineNo">3475</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3475"></a>
-<span class="sourceLineNo">3476</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a>
-<span class="sourceLineNo">3477</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a>
-<span class="sourceLineNo">3478</span>      .serverName(serverName).call();<a 
name="line.3478"></a>
-<span class="sourceLineNo">3479</span>  }<a name="line.3479"></a>
-<span class="sourceLineNo">3480</span>}<a name="line.3480"></a>
+<span class="sourceLineNo">3471</span>  @Override<a name="line.3471"></a>
+<span class="sourceLineNo">3472</span>  public CompletableFuture&lt;Void&gt; 
cloneTableSchema(TableName tableName, TableName newTableName,<a 
name="line.3472"></a>
+<span class="sourceLineNo">3473</span>      boolean preserveSplits) {<a 
name="line.3473"></a>
+<span class="sourceLineNo">3474</span>    CompletableFuture&lt;Void&gt; future 
= new CompletableFuture&lt;&gt;();<a name="line.3474"></a>
+<span class="sourceLineNo">3475</span>    
tableExists(tableName).whenComplete(<a name="line.3475"></a>
+<span class="sourceLineNo">3476</span>      (exist, err) -&gt; {<a 
name="line.3476"></a>
+<span class="sourceLineNo">3477</span>        if (err != null) {<a 
name="line.3477"></a>
+<span class="sourceLineNo">3478</span>          
future.completeExceptionally(err);<a name="line.3478"></a>
+<span class="sourceLineNo">3479</span>          return;<a name="line.3479"></a>
+<span class="sourceLineNo">3480</span>        }<a name="line.3480"></a>
+<span class="sourceLineNo">3481</span>        if (!exist) {<a 
name="line.3481"></a>
+<span class="sourceLineNo">3482</span>          
future.completeExceptionally(new TableNotFoundException(tableName));<a 
name="line.3482"></a>
+<span class="sourceLineNo">3483</span>          return;<a name="line.3483"></a>
+<span class="sourceLineNo">3484</span>        }<a name="line.3484"></a>
+<span class="sourceLineNo">3485</span>        
tableExists(newTableName).whenComplete(<a name="line.3485"></a>
+<span class="sourceLineNo">3486</span>          (exist1, err1) -&gt; {<a 
name="line.3486"></a>
+<span class="sourceLineNo">3487</span>            if (err1 != null) {<a 
name="line.3487"></a>
+<span class="sourceLineNo">3488</span>              
future.completeExceptionally(err1);<a name="line.3488"></a>
+<span class="sourceLineNo">3489</span>              return;<a 
name="line.3489"></a>
+<span class="sourceLineNo">3490</span>            }<a name="line.3490"></a>
+<span class="sourceLineNo">3491</span>            if (exist1) {<a 
name="line.3491"></a>
+<span class="sourceLineNo">3492</span>              
future.completeExceptionally(new TableExistsException(newTableName));<a 
name="line.3492"></a>
+<span class="sourceLineNo">3493</span>              return;<a 
name="line.3493"></a>
+<span class="sourceLineNo">3494</span>            }<a name="line.3494"></a>
+<span class="sourceLineNo">3495</span>            
getDescriptor(tableName).whenComplete(<a name="line.3495"></a>
+<span class="sourceLineNo">3496</span>              (tableDesc, err2) -&gt; 
{<a name="line.3496"></a>
+<span class="sourceLineNo">3497</span>                if (err2 != null) {<a 
name="line.3497"></a>
+<span class="sourceLineNo">3498</span>                  
future.completeExceptionally(err2);<a name="line.3498"></a>
+<span class="sourceLineNo">3499</span>                  return;<a 
name="line.3499"></a>
+<span class="sourceLineNo">3500</span>                }<a name="line.3500"></a>
+<span class="sourceLineNo">3501</span>                TableDescriptor 
newTableDesc<a name="line.3501"></a>
+<span class="sourceLineNo">3502</span>                    = 
TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a>
+<span class="sourceLineNo">3503</span>                if (preserveSplits) {<a 
name="line.3503"></a>
+<span class="sourceLineNo">3504</span>                  
getTableSplits(tableName).whenComplete((splits, err3) -&gt; {<a 
name="line.3504"></a>
+<span class="sourceLineNo">3505</span>                    if (err3 != null) 
{<a name="line.3505"></a>
+<span class="sourceLineNo">3506</span>                      
future.completeExceptionally(err3);<a name="line.3506"></a>
+<span class="sourceLineNo">3507</span>                    } else {<a 
name="line.3507"></a>
+<span class="sourceLineNo">3508</span>                      
createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a>
+<span class="sourceLineNo">3509</span>                        (result, err4) 
-&gt; {<a name="line.3509"></a>
+<span class="sourceLineNo">3510</span>                          if (err4 != 
null) {<a name="line.3510"></a>
+<span class="sourceLineNo">3511</span>                            
future.completeExceptionally(err4);<a name="line.3511"></a>
+<span class="sourceLineNo">3512</span>                          } else {<a 
name="line.3512"></a>
+<span class="sourceLineNo">3513</span>                            
future.complete(result);<a name="line.3513"></a>
+<span class="sourceLineNo">3514</span>                          }<a 
name="line.3514"></a>
+<span class="sourceLineNo">3515</span>                        });<a 
name="line.3515"></a>
+<span class="sourceLineNo">3516</span>                    }<a 
name="line.3516"></a>
+<span class="sourceLineNo">3517</span>                  });<a 
name="line.3517"></a>
+<span class="sourceLineNo">3518</span>                } else {<a 
name="line.3518"></a>
+<span class="sourceLineNo">3519</span>                  
createTable(newTableDesc).whenComplete(<a name="line.3519"></a>
+<span class="sourceLineNo">3520</span>                    (result, err5) -&gt; 
{<a name="line.3520"></a>
+<span class="sourceLineNo">3521</span>                      if (err5 != null) 
{<a name="line.3521"></a>
+<span class="sourceLineNo">3522</span>                        
future.completeExceptionally(err5);<a name="line.3522"></a>
+<span class="sourceLineNo">3523</span>                      } else {<a 
name="line.3523"></a>
+<span class="sourceLineNo">3524</span>                        
future.complete(result);<a name="line.3524"></a>
+<span class="sourceLineNo">3525</span>                      }<a 
name="line.3525"></a>
+<span class="sourceLineNo">3526</span>                    });<a 
name="line.3526"></a>
+<span class="sourceLineNo">3527</span>                }<a name="line.3527"></a>
+<span class="sourceLineNo">3528</span>              });<a name="line.3528"></a>
+<span class="sourceLineNo">3529</span>          });<a name="line.3529"></a>
+<span class="sourceLineNo">3530</span>      });<a name="line.3530"></a>
+<span class="sourceLineNo">3531</span>    return future;<a 
name="line.3531"></a>
+<span class="sourceLineNo">3532</span>  }<a name="line.3532"></a>
+<span class="sourceLineNo">3533</span><a name="line.3533"></a>
+<span class="sourceLineNo">3534</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3534"></a>
+<span class="sourceLineNo">3535</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3535"></a>
+<span class="sourceLineNo">3536</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3536"></a>
+<span class="sourceLineNo">3537</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3537"></a>
+<span class="sourceLineNo">3538</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3538"></a>
+<span class="sourceLineNo">3539</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a>
+<span class="sourceLineNo">3540</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a>
+<span class="sourceLineNo">3541</span>      .serverName(serverName).call();<a 
name="line.3541"></a>
+<span class="sourceLineNo">3542</span>  }<a name="line.3542"></a>
+<span class="sourceLineNo">3543</span>}<a name="line.3543"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyTableProcedureBiConsumer.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyTableProcedureBiConsumer.html
index e63cd50..d8c0d2b 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyTableProcedureBiConsumer.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ModifyTableProcedureBiConsumer.html
@@ -422,7 +422,7 @@
 <span class="sourceLineNo">414</span>  }<a name="line.414"></a>
 <span class="sourceLineNo">415</span><a name="line.415"></a>
 <span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * {@link #listTables(boolean)}<a 
name="line.417"></a>
+<span class="sourceLineNo">417</span>   * {@link 
#listTableDescriptors(boolean)}<a name="line.417"></a>
 <span class="sourceLineNo">418</span>   */<a name="line.418"></a>
 <span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
 <span class="sourceLineNo">420</span>  public 
CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; 
listTableDescriptors(Pattern pattern,<a name="line.420"></a>
@@ -3476,16 +3476,79 @@
 <span class="sourceLineNo">3468</span>    return future;<a 
name="line.3468"></a>
 <span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
 <span class="sourceLineNo">3470</span><a name="line.3470"></a>
-<span class="sourceLineNo">3471</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3471"></a>
-<span class="sourceLineNo">3472</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3472"></a>
-<span class="sourceLineNo">3473</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3473"></a>
-<span class="sourceLineNo">3474</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3474"></a>
-<span class="sourceLineNo">3475</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3475"></a>
-<span class="sourceLineNo">3476</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a>
-<span class="sourceLineNo">3477</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a>
-<span class="sourceLineNo">3478</span>      .serverName(serverName).call();<a 
name="line.3478"></a>
-<span class="sourceLineNo">3479</span>  }<a name="line.3479"></a>
-<span class="sourceLineNo">3480</span>}<a name="line.3480"></a>
+<span class="sourceLineNo">3471</span>  @Override<a name="line.3471"></a>
+<span class="sourceLineNo">3472</span>  public CompletableFuture&lt;Void&gt; 
cloneTableSchema(TableName tableName, TableName newTableName,<a 
name="line.3472"></a>
+<span class="sourceLineNo">3473</span>      boolean preserveSplits) {<a 
name="line.3473"></a>
+<span class="sourceLineNo">3474</span>    CompletableFuture&lt;Void&gt; future 
= new CompletableFuture&lt;&gt;();<a name="line.3474"></a>
+<span class="sourceLineNo">3475</span>    
tableExists(tableName).whenComplete(<a name="line.3475"></a>
+<span class="sourceLineNo">3476</span>      (exist, err) -&gt; {<a 
name="line.3476"></a>
+<span class="sourceLineNo">3477</span>        if (err != null) {<a 
name="line.3477"></a>
+<span class="sourceLineNo">3478</span>          
future.completeExceptionally(err);<a name="line.3478"></a>
+<span class="sourceLineNo">3479</span>          return;<a name="line.3479"></a>
+<span class="sourceLineNo">3480</span>        }<a name="line.3480"></a>
+<span class="sourceLineNo">3481</span>        if (!exist) {<a 
name="line.3481"></a>
+<span class="sourceLineNo">3482</span>          
future.completeExceptionally(new TableNotFoundException(tableName));<a 
name="line.3482"></a>
+<span class="sourceLineNo">3483</span>          return;<a name="line.3483"></a>
+<span class="sourceLineNo">3484</span>        }<a name="line.3484"></a>
+<span class="sourceLineNo">3485</span>        
tableExists(newTableName).whenComplete(<a name="line.3485"></a>
+<span class="sourceLineNo">3486</span>          (exist1, err1) -&gt; {<a 
name="line.3486"></a>
+<span class="sourceLineNo">3487</span>            if (err1 != null) {<a 
name="line.3487"></a>
+<span class="sourceLineNo">3488</span>              
future.completeExceptionally(err1);<a name="line.3488"></a>
+<span class="sourceLineNo">3489</span>              return;<a 
name="line.3489"></a>
+<span class="sourceLineNo">3490</span>            }<a name="line.3490"></a>
+<span class="sourceLineNo">3491</span>            if (exist1) {<a 
name="line.3491"></a>
+<span class="sourceLineNo">3492</span>              
future.completeExceptionally(new TableExistsException(newTableName));<a 
name="line.3492"></a>
+<span class="sourceLineNo">3493</span>              return;<a 
name="line.3493"></a>
+<span class="sourceLineNo">3494</span>            }<a name="line.3494"></a>
+<span class="sourceLineNo">3495</span>            
getDescriptor(tableName).whenComplete(<a name="line.3495"></a>
+<span class="sourceLineNo">3496</span>              (tableDesc, err2) -&gt; 
{<a name="line.3496"></a>
+<span class="sourceLineNo">3497</span>                if (err2 != null) {<a 
name="line.3497"></a>
+<span class="sourceLineNo">3498</span>                  
future.completeExceptionally(err2);<a name="line.3498"></a>
+<span class="sourceLineNo">3499</span>                  return;<a 
name="line.3499"></a>
+<span class="sourceLineNo">3500</span>                }<a name="line.3500"></a>
+<span class="sourceLineNo">3501</span>                TableDescriptor 
newTableDesc<a name="line.3501"></a>
+<span class="sourceLineNo">3502</span>                    = 
TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a>
+<span class="sourceLineNo">3503</span>                if (preserveSplits) {<a 
name="line.3503"></a>
+<span class="sourceLineNo">3504</span>                  
getTableSplits(tableName).whenComplete((splits, err3) -&gt; {<a 
name="line.3504"></a>
+<span class="sourceLineNo">3505</span>                    if (err3 != null) 
{<a name="line.3505"></a>
+<span class="sourceLineNo">3506</span>                      
future.completeExceptionally(err3);<a name="line.3506"></a>
+<span class="sourceLineNo">3507</span>                    } else {<a 
name="line.3507"></a>
+<span class="sourceLineNo">3508</span>                      
createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a>
+<span class="sourceLineNo">3509</span>                        (result, err4) 
-&gt; {<a name="line.3509"></a>
+<span class="sourceLineNo">3510</span>                          if (err4 != 
null) {<a name="line.3510"></a>
+<span class="sourceLineNo">3511</span>                            
future.completeExceptionally(err4);<a name="line.3511"></a>
+<span class="sourceLineNo">3512</span>                          } else {<a 
name="line.3512"></a>
+<span class="sourceLineNo">3513</span>                            
future.complete(result);<a name="line.3513"></a>
+<span class="sourceLineNo">3514</span>                          }<a 
name="line.3514"></a>
+<span class="sourceLineNo">3515</span>                        });<a 
name="line.3515"></a>
+<span class="sourceLineNo">3516</span>                    }<a 
name="line.3516"></a>
+<span class="sourceLineNo">3517</span>                  });<a 
name="line.3517"></a>
+<span class="sourceLineNo">3518</span>                } else {<a 
name="line.3518"></a>
+<span class="sourceLineNo">3519</span>                  
createTable(newTableDesc).whenComplete(<a name="line.3519"></a>
+<span class="sourceLineNo">3520</span>                    (result, err5) -&gt; 
{<a name="line.3520"></a>
+<span class="sourceLineNo">3521</span>                      if (err5 != null) 
{<a name="line.3521"></a>
+<span class="sourceLineNo">3522</span>                        
future.completeExceptionally(err5);<a name="line.3522"></a>
+<span class="sourceLineNo">3523</span>                      } else {<a 
name="line.3523"></a>
+<span class="sourceLineNo">3524</span>                        
future.complete(result);<a name="line.3524"></a>
+<span class="sourceLineNo">3525</span>                      }<a 
name="line.3525"></a>
+<span class="sourceLineNo">3526</span>                    });<a 
name="line.3526"></a>
+<span class="sourceLineNo">3527</span>                }<a name="line.3527"></a>
+<span class="sourceLineNo">3528</span>              });<a name="line.3528"></a>
+<span class="sourceLineNo">3529</span>          });<a name="line.3529"></a>
+<span class="sourceLineNo">3530</span>      });<a name="line.3530"></a>
+<span class="sourceLineNo">3531</span>    return future;<a 
name="line.3531"></a>
+<span class="sourceLineNo">3532</span>  }<a name="line.3532"></a>
+<span class="sourceLineNo">3533</span><a name="line.3533"></a>
+<span class="sourceLineNo">3534</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3534"></a>
+<span class="sourceLineNo">3535</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3535"></a>
+<span class="sourceLineNo">3536</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3536"></a>
+<span class="sourceLineNo">3537</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3537"></a>
+<span class="sourceLineNo">3538</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3538"></a>
+<span class="sourceLineNo">3539</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a>
+<span class="sourceLineNo">3540</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a>
+<span class="sourceLineNo">3541</span>      .serverName(serverName).call();<a 
name="line.3541"></a>
+<span class="sourceLineNo">3542</span>  }<a name="line.3542"></a>
+<span class="sourceLineNo">3543</span>}<a name="line.3543"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
index e63cd50..d8c0d2b 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
@@ -422,7 +422,7 @@
 <span class="sourceLineNo">414</span>  }<a name="line.414"></a>
 <span class="sourceLineNo">415</span><a name="line.415"></a>
 <span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * {@link #listTables(boolean)}<a 
name="line.417"></a>
+<span class="sourceLineNo">417</span>   * {@link 
#listTableDescriptors(boolean)}<a name="line.417"></a>
 <span class="sourceLineNo">418</span>   */<a name="line.418"></a>
 <span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
 <span class="sourceLineNo">420</span>  public 
CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; 
listTableDescriptors(Pattern pattern,<a name="line.420"></a>
@@ -3476,16 +3476,79 @@
 <span class="sourceLineNo">3468</span>    return future;<a 
name="line.3468"></a>
 <span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
 <span class="sourceLineNo">3470</span><a name="line.3470"></a>
-<span class="sourceLineNo">3471</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3471"></a>
-<span class="sourceLineNo">3472</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3472"></a>
-<span class="sourceLineNo">3473</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3473"></a>
-<span class="sourceLineNo">3474</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3474"></a>
-<span class="sourceLineNo">3475</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3475"></a>
-<span class="sourceLineNo">3476</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a>
-<span class="sourceLineNo">3477</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a>
-<span class="sourceLineNo">3478</span>      .serverName(serverName).call();<a 
name="line.3478"></a>
-<span class="sourceLineNo">3479</span>  }<a name="line.3479"></a>
-<span class="sourceLineNo">3480</span>}<a name="line.3480"></a>
+<span class="sourceLineNo">3471</span>  @Override<a name="line.3471"></a>
+<span class="sourceLineNo">3472</span>  public CompletableFuture&lt;Void&gt; 
cloneTableSchema(TableName tableName, TableName newTableName,<a 
name="line.3472"></a>
+<span class="sourceLineNo">3473</span>      boolean preserveSplits) {<a 
name="line.3473"></a>
+<span class="sourceLineNo">3474</span>    CompletableFuture&lt;Void&gt; future 
= new CompletableFuture&lt;&gt;();<a name="line.3474"></a>
+<span class="sourceLineNo">3475</span>    
tableExists(tableName).whenComplete(<a name="line.3475"></a>
+<span class="sourceLineNo">3476</span>      (exist, err) -&gt; {<a 
name="line.3476"></a>
+<span class="sourceLineNo">3477</span>        if (err != null) {<a 
name="line.3477"></a>
+<span class="sourceLineNo">3478</span>          
future.completeExceptionally(err);<a name="line.3478"></a>
+<span class="sourceLineNo">3479</span>          return;<a name="line.3479"></a>
+<span class="sourceLineNo">3480</span>        }<a name="line.3480"></a>
+<span class="sourceLineNo">3481</span>        if (!exist) {<a 
name="line.3481"></a>
+<span class="sourceLineNo">3482</span>          
future.completeExceptionally(new TableNotFoundException(tableName));<a 
name="line.3482"></a>
+<span class="sourceLineNo">3483</span>          return;<a name="line.3483"></a>
+<span class="sourceLineNo">3484</span>        }<a name="line.3484"></a>
+<span class="sourceLineNo">3485</span>        
tableExists(newTableName).whenComplete(<a name="line.3485"></a>
+<span class="sourceLineNo">3486</span>          (exist1, err1) -&gt; {<a 
name="line.3486"></a>
+<span class="sourceLineNo">3487</span>            if (err1 != null) {<a 
name="line.3487"></a>
+<span class="sourceLineNo">3488</span>              
future.completeExceptionally(err1);<a name="line.3488"></a>
+<span class="sourceLineNo">3489</span>              return;<a 
name="line.3489"></a>
+<span class="sourceLineNo">3490</span>            }<a name="line.3490"></a>
+<span class="sourceLineNo">3491</span>            if (exist1) {<a 
name="line.3491"></a>
+<span class="sourceLineNo">3492</span>              
future.completeExceptionally(new TableExistsException(newTableName));<a 
name="line.3492"></a>
+<span class="sourceLineNo">3493</span>              return;<a 
name="line.3493"></a>
+<span class="sourceLineNo">3494</span>            }<a name="line.3494"></a>
+<span class="sourceLineNo">3495</span>            
getDescriptor(tableName).whenComplete(<a name="line.3495"></a>
+<span class="sourceLineNo">3496</span>              (tableDesc, err2) -&gt; 
{<a name="line.3496"></a>
+<span class="sourceLineNo">3497</span>                if (err2 != null) {<a 
name="line.3497"></a>
+<span class="sourceLineNo">3498</span>                  
future.completeExceptionally(err2);<a name="line.3498"></a>
+<span class="sourceLineNo">3499</span>                  return;<a 
name="line.3499"></a>
+<span class="sourceLineNo">3500</span>                }<a name="line.3500"></a>
+<span class="sourceLineNo">3501</span>                TableDescriptor 
newTableDesc<a name="line.3501"></a>
+<span class="sourceLineNo">3502</span>                    = 
TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a>
+<span class="sourceLineNo">3503</span>                if (preserveSplits) {<a 
name="line.3503"></a>
+<span class="sourceLineNo">3504</span>                  
getTableSplits(tableName).whenComplete((splits, err3) -&gt; {<a 
name="line.3504"></a>
+<span class="sourceLineNo">3505</span>                    if (err3 != null) 
{<a name="line.3505"></a>
+<span class="sourceLineNo">3506</span>                      
future.completeExceptionally(err3);<a name="line.3506"></a>
+<span class="sourceLineNo">3507</span>                    } else {<a 
name="line.3507"></a>
+<span class="sourceLineNo">3508</span>                      
createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a>
+<span class="sourceLineNo">3509</span>                        (result, err4) 
-&gt; {<a name="line.3509"></a>
+<span class="sourceLineNo">3510</span>                          if (err4 != 
null) {<a name="line.3510"></a>
+<span class="sourceLineNo">3511</span>                            
future.completeExceptionally(err4);<a name="line.3511"></a>
+<span class="sourceLineNo">3512</span>                          } else {<a 
name="line.3512"></a>
+<span class="sourceLineNo">3513</span>                            
future.complete(result);<a name="line.3513"></a>
+<span class="sourceLineNo">3514</span>                          }<a 
name="line.3514"></a>
+<span class="sourceLineNo">3515</span>                        });<a 
name="line.3515"></a>
+<span class="sourceLineNo">3516</span>                    }<a 
name="line.3516"></a>
+<span class="sourceLineNo">3517</span>                  });<a 
name="line.3517"></a>
+<span class="sourceLineNo">3518</span>                } else {<a 
name="line.3518"></a>
+<span class="sourceLineNo">3519</span>                  
createTable(newTableDesc).whenComplete(<a name="line.3519"></a>
+<span class="sourceLineNo">3520</span>                    (result, err5) -&gt; 
{<a name="line.3520"></a>
+<span class="sourceLineNo">3521</span>                      if (err5 != null) 
{<a name="line.3521"></a>
+<span class="sourceLineNo">3522</span>                        
future.completeExceptionally(err5);<a name="line.3522"></a>
+<span class="sourceLineNo">3523</span>                      } else {<a 
name="line.3523"></a>
+<span class="sourceLineNo">3524</span>                        
future.complete(result);<a name="line.3524"></a>
+<span class="sourceLineNo">3525</span>                      }<a 
name="line.3525"></a>
+<span class="sourceLineNo">3526</span>                    });<a 
name="line.3526"></a>
+<span class="sourceLineNo">3527</span>                }<a name="line.3527"></a>
+<span class="sourceLineNo">3528</span>              });<a name="line.3528"></a>
+<span class="sourceLineNo">3529</span>          });<a name="line.3529"></a>
+<span class="sourceLineNo">3530</span>      });<a name="line.3530"></a>
+<span class="sourceLineNo">3531</span>    return future;<a 
name="line.3531"></a>
+<span class="sourceLineNo">3532</span>  }<a name="line.3532"></a>
+<span class="sourceLineNo">3533</span><a name="line.3533"></a>
+<span class="sourceLineNo">3534</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3534"></a>
+<span class="sourceLineNo">3535</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3535"></a>
+<span class="sourceLineNo">3536</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3536"></a>
+<span class="sourceLineNo">3537</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3537"></a>
+<span class="sourceLineNo">3538</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3538"></a>
+<span class="sourceLineNo">3539</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a>
+<span class="sourceLineNo">3540</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a>
+<span class="sourceLineNo">3541</span>      .serverName(serverName).call();<a 
name="line.3541"></a>
+<span class="sourceLineNo">3542</span>  }<a name="line.3542"></a>
+<span class="sourceLineNo">3543</span>}<a name="line.3543"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ProcedureBiConsumer.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ProcedureBiConsumer.html
index e63cd50..d8c0d2b 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ProcedureBiConsumer.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ProcedureBiConsumer.html
@@ -422,7 +422,7 @@
 <span class="sourceLineNo">414</span>  }<a name="line.414"></a>
 <span class="sourceLineNo">415</span><a name="line.415"></a>
 <span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * {@link #listTables(boolean)}<a 
name="line.417"></a>
+<span class="sourceLineNo">417</span>   * {@link 
#listTableDescriptors(boolean)}<a name="line.417"></a>
 <span class="sourceLineNo">418</span>   */<a name="line.418"></a>
 <span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
 <span class="sourceLineNo">420</span>  public 
CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; 
listTableDescriptors(Pattern pattern,<a name="line.420"></a>
@@ -3476,16 +3476,79 @@
 <span class="sourceLineNo">3468</span>    return future;<a 
name="line.3468"></a>
 <span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
 <span class="sourceLineNo">3470</span><a name="line.3470"></a>
-<span class="sourceLineNo">3471</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3471"></a>
-<span class="sourceLineNo">3472</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3472"></a>
-<span class="sourceLineNo">3473</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3473"></a>
-<span class="sourceLineNo">3474</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3474"></a>
-<span class="sourceLineNo">3475</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3475"></a>
-<span class="sourceLineNo">3476</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a>
-<span class="sourceLineNo">3477</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a>
-<span class="sourceLineNo">3478</span>      .serverName(serverName).call();<a 
name="line.3478"></a>
-<span class="sourceLineNo">3479</span>  }<a name="line.3479"></a>
-<span class="sourceLineNo">3480</span>}<a name="line.3480"></a>
+<span class="sourceLineNo">3471</span>  @Override<a name="line.3471"></a>
+<span class="sourceLineNo">3472</span>  public CompletableFuture&lt;Void&gt; 
cloneTableSchema(TableName tableName, TableName newTableName,<a 
name="line.3472"></a>
+<span class="sourceLineNo">3473</span>      boolean preserveSplits) {<a 
name="line.3473"></a>
+<span class="sourceLineNo">3474</span>    CompletableFuture&lt;Void&gt; future 
= new CompletableFuture&lt;&gt;();<a name="line.3474"></a>
+<span class="sourceLineNo">3475</span>    
tableExists(tableName).whenComplete(<a name="line.3475"></a>
+<span class="sourceLineNo">3476</span>      (exist, err) -&gt; {<a 
name="line.3476"></a>
+<span class="sourceLineNo">3477</span>        if (err != null) {<a 
name="line.3477"></a>
+<span class="sourceLineNo">3478</span>          
future.completeExceptionally(err);<a name="line.3478"></a>
+<span class="sourceLineNo">3479</span>          return;<a name="line.3479"></a>
+<span class="sourceLineNo">3480</span>        }<a name="line.3480"></a>
+<span class="sourceLineNo">3481</span>        if (!exist) {<a 
name="line.3481"></a>
+<span class="sourceLineNo">3482</span>          
future.completeExceptionally(new TableNotFoundException(tableName));<a 
name="line.3482"></a>
+<span class="sourceLineNo">3483</span>          return;<a name="line.3483"></a>
+<span class="sourceLineNo">3484</span>        }<a name="line.3484"></a>
+<span class="sourceLineNo">3485</span>        
tableExists(newTableName).whenComplete(<a name="line.3485"></a>
+<span class="sourceLineNo">3486</span>          (exist1, err1) -&gt; {<a 
name="line.3486"></a>
+<span class="sourceLineNo">3487</span>            if (err1 != null) {<a 
name="line.3487"></a>
+<span class="sourceLineNo">3488</span>              
future.completeExceptionally(err1);<a name="line.3488"></a>
+<span class="sourceLineNo">3489</span>              return;<a 
name="line.3489"></a>
+<span class="sourceLineNo">3490</span>            }<a name="line.3490"></a>
+<span class="sourceLineNo">3491</span>            if (exist1) {<a 
name="line.3491"></a>
+<span class="sourceLineNo">3492</span>              
future.completeExceptionally(new TableExistsException(newTableName));<a 
name="line.3492"></a>
+<span class="sourceLineNo">3493</span>              return;<a 
name="line.3493"></a>
+<span class="sourceLineNo">3494</span>            }<a name="line.3494"></a>
+<span class="sourceLineNo">3495</span>            
getDescriptor(tableName).whenComplete(<a name="line.3495"></a>
+<span class="sourceLineNo">3496</span>              (tableDesc, err2) -&gt; 
{<a name="line.3496"></a>
+<span class="sourceLineNo">3497</span>                if (err2 != null) {<a 
name="line.3497"></a>
+<span class="sourceLineNo">3498</span>                  
future.completeExceptionally(err2);<a name="line.3498"></a>
+<span class="sourceLineNo">3499</span>                  return;<a 
name="line.3499"></a>
+<span class="sourceLineNo">3500</span>                }<a name="line.3500"></a>
+<span class="sourceLineNo">3501</span>                TableDescriptor 
newTableDesc<a name="line.3501"></a>
+<span class="sourceLineNo">3502</span>                    = 
TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a>
+<span class="sourceLineNo">3503</span>                if (preserveSplits) {<a 
name="line.3503"></a>
+<span class="sourceLineNo">3504</span>                  
getTableSplits(tableName).whenComplete((splits, err3) -&gt; {<a 
name="line.3504"></a>
+<span class="sourceLineNo">3505</span>                    if (err3 != null) 
{<a name="line.3505"></a>
+<span class="sourceLineNo">3506</span>                      
future.completeExceptionally(err3);<a name="line.3506"></a>
+<span class="sourceLineNo">3507</span>                    } else {<a 
name="line.3507"></a>
+<span class="sourceLineNo">3508</span>                      
createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a>
+<span class="sourceLineNo">3509</span>                        (result, err4) 
-&gt; {<a name="line.3509"></a>
+<span class="sourceLineNo">3510</span>                          if (err4 != 
null) {<a name="line.3510"></a>
+<span class="sourceLineNo">3511</span>                            
future.completeExceptionally(err4);<a name="line.3511"></a>
+<span class="sourceLineNo">3512</span>                          } else {<a 
name="line.3512"></a>
+<span class="sourceLineNo">3513</span>                            
future.complete(result);<a name="line.3513"></a>
+<span class="sourceLineNo">3514</span>                          }<a 
name="line.3514"></a>
+<span class="sourceLineNo">3515</span>                        });<a 
name="line.3515"></a>
+<span class="sourceLineNo">3516</span>                    }<a 
name="line.3516"></a>
+<span class="sourceLineNo">3517</span>                  });<a 
name="line.3517"></a>
+<span class="sourceLineNo">3518</span>                } else {<a 
name="line.3518"></a>
+<span class="sourceLineNo">3519</span>                  
createTable(newTableDesc).whenComplete(<a name="line.3519"></a>
+<span class="sourceLineNo">3520</span>                    (result, err5) -&gt; 
{<a name="line.3520"></a>
+<span class="sourceLineNo">3521</span>                      if (err5 != null) 
{<a name="line.3521"></a>
+<span class="sourceLineNo">3522</span>                        
future.completeExceptionally(err5);<a name="line.3522"></a>
+<span class="sourceLineNo">3523</span>                      } else {<a 
name="line.3523"></a>
+<span class="sourceLineNo">3524</span>                        
future.complete(result);<a name="line.3524"></a>
+<span class="sourceLineNo">3525</span>                      }<a 
name="line.3525"></a>
+<span class="sourceLineNo">3526</span>                    });<a 
name="line.3526"></a>
+<span class="sourceLineNo">3527</span>                }<a name="line.3527"></a>
+<span class="sourceLineNo">3528</span>              });<a name="line.3528"></a>
+<span class="sourceLineNo">3529</span>          });<a name="line.3529"></a>
+<span class="sourceLineNo">3530</span>      });<a name="line.3530"></a>
+<span class="sourceLineNo">3531</span>    return future;<a 
name="line.3531"></a>
+<span class="sourceLineNo">3532</span>  }<a name="line.3532"></a>
+<span class="sourceLineNo">3533</span><a name="line.3533"></a>
+<span class="sourceLineNo">3534</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3534"></a>
+<span class="sourceLineNo">3535</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3535"></a>
+<span class="sourceLineNo">3536</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3536"></a>
+<span class="sourceLineNo">3537</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3537"></a>
+<span class="sourceLineNo">3538</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3538"></a>
+<span class="sourceLineNo">3539</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a>
+<span class="sourceLineNo">3540</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a>
+<span class="sourceLineNo">3541</span>      .serverName(serverName).call();<a 
name="line.3541"></a>
+<span class="sourceLineNo">3542</span>  }<a name="line.3542"></a>
+<span class="sourceLineNo">3543</span>}<a name="line.3543"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ReplicationProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ReplicationProcedureBiConsumer.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ReplicationProcedureBiConsumer.html
index e63cd50..d8c0d2b 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ReplicationProcedureBiConsumer.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.ReplicationProcedureBiConsumer.html
@@ -422,7 +422,7 @@
 <span class="sourceLineNo">414</span>  }<a name="line.414"></a>
 <span class="sourceLineNo">415</span><a name="line.415"></a>
 <span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * {@link #listTables(boolean)}<a 
name="line.417"></a>
+<span class="sourceLineNo">417</span>   * {@link 
#listTableDescriptors(boolean)}<a name="line.417"></a>
 <span class="sourceLineNo">418</span>   */<a name="line.418"></a>
 <span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
 <span class="sourceLineNo">420</span>  public 
CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; 
listTableDescriptors(Pattern pattern,<a name="line.420"></a>
@@ -3476,16 +3476,79 @@
 <span class="sourceLineNo">3468</span>    return future;<a 
name="line.3468"></a>
 <span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
 <span class="sourceLineNo">3470</span><a name="line.3470"></a>
-<span class="sourceLineNo">3471</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3471"></a>
-<span class="sourceLineNo">3472</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3472"></a>
-<span class="sourceLineNo">3473</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3473"></a>
-<span class="sourceLineNo">3474</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3474"></a>
-<span class="sourceLineNo">3475</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3475"></a>
-<span class="sourceLineNo">3476</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a>
-<span class="sourceLineNo">3477</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a>
-<span class="sourceLineNo">3478</span>      .serverName(serverName).call();<a 
name="line.3478"></a>
-<span class="sourceLineNo">3479</span>  }<a name="line.3479"></a>
-<span class="sourceLineNo">3480</span>}<a name="line.3480"></a>
+<span class="sourceLineNo">3471</span>  @Override<a name="line.3471"></a>
+<span class="sourceLineNo">3472</span>  public CompletableFuture&lt;Void&gt; 
cloneTableSchema(TableName tableName, TableName newTableName,<a 
name="line.3472"></a>
+<span class="sourceLineNo">3473</span>      boolean preserveSplits) {<a 
name="line.3473"></a>
+<span class="sourceLineNo">3474</span>    CompletableFuture&lt;Void&gt; future 
= new CompletableFuture&lt;&gt;();<a name="line.3474"></a>
+<span class="sourceLineNo">3475</span>    
tableExists(tableName).whenComplete(<a name="line.3475"></a>
+<span class="sourceLineNo">3476</span>      (exist, err) -&gt; {<a 
name="line.3476"></a>
+<span class="sourceLineNo">3477</span>        if (err != null) {<a 
name="line.3477"></a>
+<span class="sourceLineNo">3478</span>          
future.completeExceptionally(err);<a name="line.3478"></a>
+<span class="sourceLineNo">3479</span>          return;<a name="line.3479"></a>
+<span class="sourceLineNo">3480</span>        }<a name="line.3480"></a>
+<span class="sourceLineNo">3481</span>        if (!exist) {<a 
name="line.3481"></a>
+<span class="sourceLineNo">3482</span>          
future.completeExceptionally(new TableNotFoundException(tableName));<a 
name="line.3482"></a>
+<span class="sourceLineNo">3483</span>          return;<a name="line.3483"></a>
+<span class="sourceLineNo">3484</span>        }<a name="line.3484"></a>
+<span class="sourceLineNo">3485</span>        
tableExists(newTableName).whenComplete(<a name="line.3485"></a>
+<span class="sourceLineNo">3486</span>          (exist1, err1) -&gt; {<a 
name="line.3486"></a>
+<span class="sourceLineNo">3487</span>            if (err1 != null) {<a 
name="line.3487"></a>
+<span class="sourceLineNo">3488</span>              
future.completeExceptionally(err1);<a name="line.3488"></a>
+<span class="sourceLineNo">3489</span>              return;<a 
name="line.3489"></a>
+<span class="sourceLineNo">3490</span>            }<a name="line.3490"></a>
+<span class="sourceLineNo">3491</span>            if (exist1) {<a 
name="line.3491"></a>
+<span class="sourceLineNo">3492</span>              
future.completeExceptionally(new TableExistsException(newTableName));<a 
name="line.3492"></a>
+<span class="sourceLineNo">3493</span>              return;<a 
name="line.3493"></a>
+<span class="sourceLineNo">3494</span>            }<a name="line.3494"></a>
+<span class="sourceLineNo">3495</span>            
getDescriptor(tableName).whenComplete(<a name="line.3495"></a>
+<span class="sourceLineNo">3496</span>              (tableDesc, err2) -&gt; 
{<a name="line.3496"></a>
+<span class="sourceLineNo">3497</span>                if (err2 != null) {<a 
name="line.3497"></a>
+<span class="sourceLineNo">3498</span>                  
future.completeExceptionally(err2);<a name="line.3498"></a>
+<span class="sourceLineNo">3499</span>                  return;<a 
name="line.3499"></a>
+<span class="sourceLineNo">3500</span>                }<a name="line.3500"></a>
+<span class="sourceLineNo">3501</span>                TableDescriptor 
newTableDesc<a name="line.3501"></a>
+<span class="sourceLineNo">3502</span>                    = 
TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a>
+<span class="sourceLineNo">3503</span>                if (preserveSplits) {<a 
name="line.3503"></a>
+<span class="sourceLineNo">3504</span>                  
getTableSplits(tableName).whenComplete((splits, err3) -&gt; {<a 
name="line.3504"></a>
+<span class="sourceLineNo">3505</span>                    if (err3 != null) 
{<a name="line.3505"></a>
+<span class="sourceLineNo">3506</span>                      
future.completeExceptionally(err3);<a name="line.3506"></a>
+<span class="sourceLineNo">3507</span>                    } else {<a 
name="line.3507"></a>
+<span class="sourceLineNo">3508</span>                      
createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a>
+<span class="sourceLineNo">3509</span>                        (result, err4) 
-&gt; {<a name="line.3509"></a>
+<span class="sourceLineNo">3510</span>                          if (err4 != 
null) {<a name="line.3510"></a>
+<span class="sourceLineNo">3511</span>                            
future.completeExceptionally(err4);<a name="line.3511"></a>
+<span class="sourceLineNo">3512</span>                          } else {<a 
name="line.3512"></a>
+<span class="sourceLineNo">3513</span>                            
future.complete(result);<a name="line.3513"></a>
+<span class="sourceLineNo">3514</span>                          }<a 
name="line.3514"></a>
+<span class="sourceLineNo">3515</span>                        });<a 
name="line.3515"></a>
+<span class="sourceLineNo">3516</span>                    }<a 
name="line.3516"></a>
+<span class="sourceLineNo">3517</span>                  });<a 
name="line.3517"></a>
+<span class="sourceLineNo">3518</span>                } else {<a 
name="line.3518"></a>
+<span class="sourceLineNo">3519</span>                  
createTable(newTableDesc).whenComplete(<a name="line.3519"></a>
+<span class="sourceLineNo">3520</span>                    (result, err5) -&gt; 
{<a name="line.3520"></a>
+<span class="sourceLineNo">3521</span>                      if (err5 != null) 
{<a name="line.3521"></a>
+<span class="sourceLineNo">3522</span>                        
future.completeExceptionally(err5);<a name="line.3522"></a>
+<span class="sourceLineNo">3523</span>                      } else {<a 
name="line.3523"></a>
+<span class="sourceLineNo">3524</span>                        
future.complete(result);<a name="line.3524"></a>
+<span class="sourceLineNo">3525</span>                      }<a 
name="line.3525"></a>
+<span class="sourceLineNo">3526</span>                    });<a 
name="line.3526"></a>
+<span class="sourceLineNo">3527</span>                }<a name="line.3527"></a>
+<span class="sourceLineNo">3528</span>              });<a name="line.3528"></a>
+<span class="sourceLineNo">3529</span>          });<a name="line.3529"></a>
+<span class="sourceLineNo">3530</span>      });<a name="line.3530"></a>
+<span class="sourceLineNo">3531</span>    return future;<a 
name="line.3531"></a>
+<span class="sourceLineNo">3532</span>  }<a name="line.3532"></a>
+<span class="sourceLineNo">3533</span><a name="line.3533"></a>
+<span class="sourceLineNo">3534</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3534"></a>
+<span class="sourceLineNo">3535</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3535"></a>
+<span class="sourceLineNo">3536</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3536"></a>
+<span class="sourceLineNo">3537</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3537"></a>
+<span class="sourceLineNo">3538</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3538"></a>
+<span class="sourceLineNo">3539</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a>
+<span class="sourceLineNo">3540</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a>
+<span class="sourceLineNo">3541</span>      .serverName(serverName).call();<a 
name="line.3541"></a>
+<span class="sourceLineNo">3542</span>  }<a name="line.3542"></a>
+<span class="sourceLineNo">3543</span>}<a name="line.3543"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.SplitTableRegionProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.SplitTableRegionProcedureBiConsumer.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.SplitTableRegionProcedureBiConsumer.html
index e63cd50..d8c0d2b 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.SplitTableRegionProcedureBiConsumer.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.SplitTableRegionProcedureBiConsumer.html
@@ -422,7 +422,7 @@
 <span class="sourceLineNo">414</span>  }<a name="line.414"></a>
 <span class="sourceLineNo">415</span><a name="line.415"></a>
 <span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * {@link #listTables(boolean)}<a 
name="line.417"></a>
+<span class="sourceLineNo">417</span>   * {@link 
#listTableDescriptors(boolean)}<a name="line.417"></a>
 <span class="sourceLineNo">418</span>   */<a name="line.418"></a>
 <span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
 <span class="sourceLineNo">420</span>  public 
CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; 
listTableDescriptors(Pattern pattern,<a name="line.420"></a>
@@ -3476,16 +3476,79 @@
 <span class="sourceLineNo">3468</span>    return future;<a 
name="line.3468"></a>
 <span class="sourceLineNo">3469</span>  }<a name="line.3469"></a>
 <span class="sourceLineNo">3470</span><a name="line.3470"></a>
-<span class="sourceLineNo">3471</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3471"></a>
-<span class="sourceLineNo">3472</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3472"></a>
-<span class="sourceLineNo">3473</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3473"></a>
-<span class="sourceLineNo">3474</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3474"></a>
-<span class="sourceLineNo">3475</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3475"></a>
-<span class="sourceLineNo">3476</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a>
-<span class="sourceLineNo">3477</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a>
-<span class="sourceLineNo">3478</span>      .serverName(serverName).call();<a 
name="line.3478"></a>
-<span class="sourceLineNo">3479</span>  }<a name="line.3479"></a>
-<span class="sourceLineNo">3480</span>}<a name="line.3480"></a>
+<span class="sourceLineNo">3471</span>  @Override<a name="line.3471"></a>
+<span class="sourceLineNo">3472</span>  public CompletableFuture&lt;Void&gt; 
cloneTableSchema(TableName tableName, TableName newTableName,<a 
name="line.3472"></a>
+<span class="sourceLineNo">3473</span>      boolean preserveSplits) {<a 
name="line.3473"></a>
+<span class="sourceLineNo">3474</span>    CompletableFuture&lt;Void&gt; future 
= new CompletableFuture&lt;&gt;();<a name="line.3474"></a>
+<span class="sourceLineNo">3475</span>    
tableExists(tableName).whenComplete(<a name="line.3475"></a>
+<span class="sourceLineNo">3476</span>      (exist, err) -&gt; {<a 
name="line.3476"></a>
+<span class="sourceLineNo">3477</span>        if (err != null) {<a 
name="line.3477"></a>
+<span class="sourceLineNo">3478</span>          
future.completeExceptionally(err);<a name="line.3478"></a>
+<span class="sourceLineNo">3479</span>          return;<a name="line.3479"></a>
+<span class="sourceLineNo">3480</span>        }<a name="line.3480"></a>
+<span class="sourceLineNo">3481</span>        if (!exist) {<a 
name="line.3481"></a>
+<span class="sourceLineNo">3482</span>          
future.completeExceptionally(new TableNotFoundException(tableName));<a 
name="line.3482"></a>
+<span class="sourceLineNo">3483</span>          return;<a name="line.3483"></a>
+<span class="sourceLineNo">3484</span>        }<a name="line.3484"></a>
+<span class="sourceLineNo">3485</span>        
tableExists(newTableName).whenComplete(<a name="line.3485"></a>
+<span class="sourceLineNo">3486</span>          (exist1, err1) -&gt; {<a 
name="line.3486"></a>
+<span class="sourceLineNo">3487</span>            if (err1 != null) {<a 
name="line.3487"></a>
+<span class="sourceLineNo">3488</span>              
future.completeExceptionally(err1);<a name="line.3488"></a>
+<span class="sourceLineNo">3489</span>              return;<a 
name="line.3489"></a>
+<span class="sourceLineNo">3490</span>            }<a name="line.3490"></a>
+<span class="sourceLineNo">3491</span>            if (exist1) {<a 
name="line.3491"></a>
+<span class="sourceLineNo">3492</span>              
future.completeExceptionally(new TableExistsException(newTableName));<a 
name="line.3492"></a>
+<span class="sourceLineNo">3493</span>              return;<a 
name="line.3493"></a>
+<span class="sourceLineNo">3494</span>            }<a name="line.3494"></a>
+<span class="sourceLineNo">3495</span>            
getDescriptor(tableName).whenComplete(<a name="line.3495"></a>
+<span class="sourceLineNo">3496</span>              (tableDesc, err2) -&gt; 
{<a name="line.3496"></a>
+<span class="sourceLineNo">3497</span>                if (err2 != null) {<a 
name="line.3497"></a>
+<span class="sourceLineNo">3498</span>                  
future.completeExceptionally(err2);<a name="line.3498"></a>
+<span class="sourceLineNo">3499</span>                  return;<a 
name="line.3499"></a>
+<span class="sourceLineNo">3500</span>                }<a name="line.3500"></a>
+<span class="sourceLineNo">3501</span>                TableDescriptor 
newTableDesc<a name="line.3501"></a>
+<span class="sourceLineNo">3502</span>                    = 
TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a>
+<span class="sourceLineNo">3503</span>                if (preserveSplits) {<a 
name="line.3503"></a>
+<span class="sourceLineNo">3504</span>                  
getTableSplits(tableName).whenComplete((splits, err3) -&gt; {<a 
name="line.3504"></a>
+<span class="sourceLineNo">3505</span>                    if (err3 != null) 
{<a name="line.3505"></a>
+<span class="sourceLineNo">3506</span>                      
future.completeExceptionally(err3);<a name="line.3506"></a>
+<span class="sourceLineNo">3507</span>                    } else {<a 
name="line.3507"></a>
+<span class="sourceLineNo">3508</span>                      
createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a>
+<span class="sourceLineNo">3509</span>                        (result, err4) 
-&gt; {<a name="line.3509"></a>
+<span class="sourceLineNo">3510</span>                          if (err4 != 
null) {<a name="line.3510"></a>
+<span class="sourceLineNo">3511</span>                            
future.completeExceptionally(err4);<a name="line.3511"></a>
+<span class="sourceLineNo">3512</span>                          } else {<a 
name="line.3512"></a>
+<span class="sourceLineNo">3513</span>                            
future.complete(result);<a name="line.3513"></a>
+<span class="sourceLineNo">3514</span>                          }<a 
name="line.3514"></a>
+<span class="sourceLineNo">3515</span>                        });<a 
name="line.3515"></a>
+<span class="sourceLineNo">3516</span>                    }<a 
name="line.3516"></a>
+<span class="sourceLineNo">3517</span>                  });<a 
name="line.3517"></a>
+<span class="sourceLineNo">3518</span>                } else {<a 
name="line.3518"></a>
+<span class="sourceLineNo">3519</span>                  
createTable(newTableDesc).whenComplete(<a name="line.3519"></a>
+<span class="sourceLineNo">3520</span>                    (result, err5) -&gt; 
{<a name="line.3520"></a>
+<span class="sourceLineNo">3521</span>                      if (err5 != null) 
{<a name="line.3521"></a>
+<span class="sourceLineNo">3522</span>                        
future.completeExceptionally(err5);<a name="line.3522"></a>
+<span class="sourceLineNo">3523</span>                      } else {<a 
name="line.3523"></a>
+<span class="sourceLineNo">3524</span>                        
future.complete(result);<a name="line.3524"></a>
+<span class="sourceLineNo">3525</span>                      }<a 
name="line.3525"></a>
+<span class="sourceLineNo">3526</span>                    });<a 
name="line.3526"></a>
+<span class="sourceLineNo">3527</span>                }<a name="line.3527"></a>
+<span class="sourceLineNo">3528</span>              });<a name="line.3528"></a>
+<span class="sourceLineNo">3529</span>          });<a name="line.3529"></a>
+<span class="sourceLineNo">3530</span>      });<a name="line.3530"></a>
+<span class="sourceLineNo">3531</span>    return future;<a 
name="line.3531"></a>
+<span class="sourceLineNo">3532</span>  }<a name="line.3532"></a>
+<span class="sourceLineNo">3533</span><a name="line.3533"></a>
+<span class="sourceLineNo">3534</span>  private 
CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(ServerName 
serverName,<a name="line.3534"></a>
+<span class="sourceLineNo">3535</span>      List&lt;RegionInfo&gt; hris) {<a 
name="line.3535"></a>
+<span class="sourceLineNo">3536</span>    return 
this.&lt;CacheEvictionStats&gt; newAdminCaller().action((controller, stub) 
-&gt; this<a name="line.3536"></a>
+<span class="sourceLineNo">3537</span>      .&lt;ClearRegionBlockCacheRequest, 
ClearRegionBlockCacheResponse, CacheEvictionStats&gt; adminCall(<a 
name="line.3537"></a>
+<span class="sourceLineNo">3538</span>        controller, stub, 
RequestConverter.buildClearRegionBlockCacheRequest(hris),<a 
name="line.3538"></a>
+<span class="sourceLineNo">3539</span>        (s, c, req, done) -&gt; 
s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a>
+<span class="sourceLineNo">3540</span>        resp -&gt; 
ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a>
+<span class="sourceLineNo">3541</span>      .serverName(serverName).call();<a 
name="line.3541"></a>
+<span class="sourceLineNo">3542</span>  }<a name="line.3542"></a>
+<span class="sourceLineNo">3543</span>}<a name="line.3543"></a>
 
 
 

Reply via email to