Published site at af923225d0a874ecf3c7deddbc0d7bc82184e1d1.
authorjenkins <builds@apache.org>
Tue, 5 Feb 2019 14:47:17 +0000 (14:47 +0000)
committerjenkins <builds@apache.org>
Tue, 5 Feb 2019 14:47:17 +0000 (14:47 +0000)
76 files changed:
acid-semantics.html
apache_hbase_reference_guide.pdf
book.html
bulk-loads.html
checkstyle-aggregate.html
coc.html
dependencies.html
dependency-convergence.html
dependency-info.html
dependency-management.html
devapidocs/constant-values.html
devapidocs/index-all.html
devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
devapidocs/org/apache/hadoop/hbase/client/package-tree.html
devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
devapidocs/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html
devapidocs/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html
devapidocs/org/apache/hadoop/hbase/master/cleaner/class-use/LogCleaner.CleanerContext.html
devapidocs/org/apache/hadoop/hbase/master/package-tree.html
devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
devapidocs/org/apache/hadoop/hbase/package-tree.html
devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
devapidocs/org/apache/hadoop/hbase/security/package-tree.html
devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
devapidocs/org/apache/hadoop/hbase/util/package-tree.html
devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
devapidocs/src-html/org/apache/hadoop/hbase/Version.html
devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html
devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html
downloads.html
export_control.html
index.html
integration.html
issue-tracking.html
license.html
mail-lists.html
metrics.html
old_news.html
plugin-management.html
plugins.html
poweredbyhbase.html
project-info.html
project-reports.html
project-summary.html
pseudo-distributed.html
replication.html
resources.html
source-repository.html
sponsors.html
supportingprojects.html
team-list.html
testdevapidocs/index-all.html
testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html
testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.FaultyZooKeeperWatcher.html
testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html
testdevapidocs/org/apache/hadoop/hbase/package-tree.html
testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html
testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.FaultyZooKeeperWatcher.html
testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html

index 8b88ab4..bca335a 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -611,7 +611,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 969b217..1e493af 100644 (file)
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20190204142935+00'00')
-/CreationDate (D:20190204151200+00'00')
+/ModDate (D:20190205142936+00'00')
+/CreationDate (D:20190205144325+00'00')
 >>
 endobj
 2 0 obj
index 63ed659..21bad91 100644 (file)
--- a/book.html
+++ b/book.html
@@ -41579,7 +41579,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2019-02-04 14:29:35 UTC
+Last updated 2019-02-05 14:29:36 UTC
 </div>
 </div>
 </body>
index fb36186..f270e4b 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -316,7 +316,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 4382147..f754cd5 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index df75280..1539513 100644 (file)
--- a/coc.html
+++ b/coc.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -385,7 +385,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 3652d1a..bcc47ac 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 8811e7c..11798e7 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index d5e3c35..f94ae69 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 65d85e9..4ff96a4 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index fcd9f7e..c9f5dd8 100644 (file)
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Mon Feb  4 15:06:28 UTC 2019"</code></td>
+<td class="colLast"><code>"Tue Feb  5 14:38:12 UTC 2019"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"4e068438592bcf520203e0d5717c0d76"</code></td>
+<td class="colLast"><code>"c5dd962958938ab04fc14fec7b7cae88"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">
-<!--   -->
-</a><code>static&nbsp;final&nbsp;long</code></td>
-<td><code><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC</a></code></td>
-<td class="colLast"><code>500L</code></td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE">DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE</a></code></td>
 <td class="colLast"><code>2</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC">
 <!--   -->
 </a><code>static&nbsp;final&nbsp;long</code></td>
 <td><code><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC">DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC</a></code></td>
 <td class="colLast"><code>60000L</code></td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.LogCleaner.OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td><code><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC</a></code></td>
-<td class="colLast"><code>"hbase.oldwals.cleaner.thread.check.interval.msec"</code></td>
-</tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.LogCleaner.OLD_WALS_CLEANER_THREAD_SIZE">
 <!--   -->
index aba1182..7c03e90 100644 (file)
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift2/client/ThriftAdmin.html#cleanerChoreSwitch-boolean-">cleanerChoreSwitch(boolean)</a></span> - Method in class org.apache.hadoop.hbase.thrift2.client.<a href="org/apache/hadoop/hbase/thrift2/client/ThriftAdmin.html" title="class in org.apache.hadoop.hbase.thrift2.client">ThriftAdmin</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#CleanerContext-org.apache.hadoop.fs.FileStatus-long-">CleanerContext(FileStatus, long)</a></span> - Constructor for class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#CleanerContext-org.apache.hadoop.fs.FileStatus-">CleanerContext(FileStatus)</a></span> - Constructor for class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.DirScanPool.html#cleanerLatch">cleanerLatch</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.DirScanPool.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore.DirScanPool</a></dt>
 <dd>&nbsp;</dd>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#cleanerThreadCheckIntervalMsec">cleanerThreadCheckIntervalMsec</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#cleanerThreadCheckIntervalMsec">cleanerThreadCheckIntervalMsec</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#cleanerThreadTimeoutMsec">cleanerThreadTimeoutMsec</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#cleanerThreadTimeoutMsec">cleanerThreadTimeoutMsec</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.lang.ClassLoader-org.apache.hadoop.fs.Path-">createClassLoader(ClassLoader, Path)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#createCleanerContext-org.apache.hadoop.fs.FileStatus-long-">createCleanerContext(FileStatus, long)</a></span> - Static method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ServerNonceManager.html#createCleanupScheduledChore-org.apache.hadoop.hbase.Stoppable-">createCleanupScheduledChore(Stoppable)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ServerNonceManager.html" title="class in org.apache.hadoop.hbase.regionserver">ServerNonceManager</a></dt>
 <dd>
 <div class="block">Creates a scheduled chore that is used to clean up old nonces.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/BoundedGroupingStrategy.html#DEFAULT_NUM_REGION_GROUPS">DEFAULT_NUM_REGION_GROUPS</a></span> - Static variable in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/BoundedGroupingStrategy.html" title="class in org.apache.hadoop.hbase.wal">BoundedGroupingStrategy</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE">DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC">DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getCleanerThreadCheckIntervalMsec--">getCleanerThreadCheckIntervalMsec()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#getCleanerThreadCheckIntervalMsec--">getCleanerThreadCheckIntervalMsec()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getCleanerThreads--">getCleanerThreads()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getCleanerThreadTimeoutMsec--">getCleanerThreadTimeoutMsec()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#OLD_SNAPSHOT_DIR_NAME">OLD_SNAPSHOT_DIR_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#OLD_WALS_CLEANER_THREAD_SIZE">OLD_WALS_CLEANER_THREAD_SIZE</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC">OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></dt>
@@ -93884,6 +93874,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/BoundedPriorityBlockingQueue.html#remainingCapacity--">remainingCapacity()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/BoundedPriorityBlockingQueue.html" title="class in org.apache.hadoop.hbase.util">BoundedPriorityBlockingQueue</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#remainingResults">remainingResults</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coordination/SplitLogManagerCoordination.html#remainingTasksInCoordination--">remainingTasksInCoordination()</a></span> - Method in interface org.apache.hadoop.hbase.coordination.<a href="org/apache/hadoop/hbase/coordination/SplitLogManagerCoordination.html" title="interface in org.apache.hadoop.hbase.coordination">SplitLogManagerCoordination</a></dt>
 <dd>
 <div class="block">Return the number of remaining tasks</div>
@@ -104623,8 +104615,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#setFrags-java.util.Map-">setFrags(Map&lt;String, Integer&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#setFromCleaner">setFromCleaner</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/RestoreRequest.html#setFromTables-org.apache.hadoop.hbase.TableName:A-">setFromTables(TableName[])</a></span> - Method in class org.apache.hadoop.hbase.backup.<a href="org/apache/hadoop/hbase/backup/RestoreRequest.html" title="class in org.apache.hadoop.hbase.backup">RestoreRequest</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#setFromTimedQuota-org.apache.hadoop.hbase.quotas.RateLimiter-org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota-">setFromTimedQuota(RateLimiter, QuotaProtos.TimedQuota)</a></span> - Static method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html" title="class in org.apache.hadoop.hbase.quotas">TimeBasedLimiter</a></dt>
@@ -116746,8 +116736,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#timeoutMsec">timeoutMsec</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#timeoutMsec">timeoutMsec</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/Call.html#timeoutTask">timeoutTask</a></span> - Variable in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcConnection.html#timeoutTimer">timeoutTimer</a></span> - Variable in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">RpcConnection</a></dt>
@@ -118195,6 +118183,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.html#toString--">toString()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer.Cluster</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#toString--">toString()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.HBaseDatagramChannelFactory.html#toString--">toString()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.HBaseDatagramChannelFactory.html" title="class in org.apache.hadoop.hbase.master">ClusterStatusPublisher.MulticastPublisher.HBaseDatagramChannelFactory</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/DeadServer.html#toString--">toString()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/DeadServer.html" title="class in org.apache.hadoop.hbase.master">DeadServer</a></dt>
index ab6de85..6283013 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 </ul>
 </li>
 </ul>
index bfbdf02..472f7a5 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
 </ul>
 </li>
 </ul>
index dc618a4..c51f7b2 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.MetaTableOps.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">MetaTableMetrics.MetaTableOps</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">RegionObserver.MutationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.MetaTableOps.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">MetaTableMetrics.MetaTableOps</span></a></li>
 </ul>
 </li>
 </ul>
index 127caa7..531254c 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 </ul>
 </li>
 </ul>
index a4c1597..a9dcd94 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
 </ul>
 </li>
 </ul>
index 67623b2..32d0505 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 </ul>
 </li>
 </ul>
index d288952..79eb136 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 </ul>
 </li>
 </ul>
index 0d74cf9..92596b5 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 </ul>
 </li>
 </ul>
index c49c655..848d41f 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
 </ul>
 </li>
 </ul>
index 5281511..75e369f 100644 (file)
@@ -18,8 +18,8 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":10,"i2":10,"i3":10};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.221">LogCleaner.CleanerContext</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.197">LogCleaner.CleanerContext</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -134,21 +134,17 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#result">result</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#remainingResults">remainingResults</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#setFromCleaner">setFromCleaner</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#result">result</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.fs.FileStatus</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#target">target</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>(package private) long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#timeoutMsec">timeoutMsec</a></span></code>&nbsp;</td>
-</tr>
 </table>
 </li>
 </ul>
@@ -166,8 +162,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#CleanerContext-org.apache.hadoop.fs.FileStatus-long-">CleanerContext</a></span>(org.apache.hadoop.fs.FileStatus&nbsp;status,
-              long&nbsp;timeoutMsec)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#CleanerContext-org.apache.hadoop.fs.FileStatus-">CleanerContext</a></span>(org.apache.hadoop.fs.FileStatus&nbsp;status)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -179,35 +174,34 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#createCleanerContext-org.apache.hadoop.fs.FileStatus-long-">createCleanerContext</a></span>(org.apache.hadoop.fs.FileStatus&nbsp;status,
-                    long&nbsp;timeoutMsec)</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#getResult-long-">getResult</a></span>(long&nbsp;waitIfNotFinished)</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.fs.FileStatus</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#getTargetToClean--">getTargetToClean</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#setResult-boolean-">setResult</a></span>(boolean&nbsp;res)</code>&nbsp;</td>
 </tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
 </ul>
 </li>
 </ul>
@@ -229,7 +223,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>target</h4>
-<pre>final&nbsp;org.apache.hadoop.fs.FileStatus <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.223">target</a></pre>
+<pre>final&nbsp;org.apache.hadoop.fs.FileStatus <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.199">target</a></pre>
 </li>
 </ul>
 <a name="result">
@@ -238,25 +232,16 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>result</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.224">result</a></pre>
-</li>
-</ul>
-<a name="setFromCleaner">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setFromCleaner</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.225">setFromCleaner</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.200">result</a></pre>
 </li>
 </ul>
-<a name="timeoutMsec">
+<a name="remainingResults">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>timeoutMsec</h4>
-<pre>long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.226">timeoutMsec</a></pre>
+<h4>remainingResults</h4>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.201">remainingResults</a></pre>
 </li>
 </ul>
 </li>
@@ -267,14 +252,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="CleanerContext-org.apache.hadoop.fs.FileStatus-long-">
+<a name="CleanerContext-org.apache.hadoop.fs.FileStatus-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CleanerContext</h4>
-<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.232">CleanerContext</a>(org.apache.hadoop.fs.FileStatus&nbsp;status,
-                       long&nbsp;timeoutMsec)</pre>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.203">CleanerContext</a>(org.apache.hadoop.fs.FileStatus&nbsp;status)</pre>
 </li>
 </ul>
 </li>
@@ -285,41 +269,44 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="createCleanerContext-org.apache.hadoop.fs.FileStatus-long-">
+<a name="setResult-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>createCleanerContext</h4>
-<pre>static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.228">createCleanerContext</a>(org.apache.hadoop.fs.FileStatus&nbsp;status,
-                                                      long&nbsp;timeoutMsec)</pre>
+<h4>setResult</h4>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.209">setResult</a>(boolean&nbsp;res)</pre>
 </li>
 </ul>
-<a name="setResult-boolean-">
+<a name="getResult-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setResult</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.238">setResult</a>(boolean&nbsp;res)</pre>
+<h4>getResult</h4>
+<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.214">getResult</a>(long&nbsp;waitIfNotFinished)</pre>
 </li>
 </ul>
-<a name="getResult-long-">
+<a name="getTargetToClean--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getResult</h4>
-<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.244">getResult</a>(long&nbsp;waitIfNotFinished)</pre>
+<h4>getTargetToClean</h4>
+<pre>org.apache.hadoop.fs.FileStatus&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.230">getTargetToClean</a>()</pre>
 </li>
 </ul>
-<a name="getTargetToClean--">
+<a name="toString--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getTargetToClean</h4>
-<pre>org.apache.hadoop.fs.FileStatus&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.264">getTargetToClean</a>()</pre>
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#line.235">toString</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
 </li>
 </ul>
 </li>
index e52524f..b6609d8 100644 (file)
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -124,7 +124,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.47">LogCleaner</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.50">LogCleaner</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/BaseLogCleanerDelegate.html" title="class in org.apache.hadoop.hbase.master.cleaner">BaseLogCleanerDelegate</a>&gt;</pre>
 <div class="block">This Chore, every time it runs, will attempt to delete the WALs and Procedure WALs in the old
  logs folder. The WAL is only deleted if none of the cleaner delegates says otherwise.</div>
@@ -171,16 +171,8 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#cleanerThreadCheckIntervalMsec">cleanerThreadCheckIntervalMsec</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#cleanerThreadTimeoutMsec">cleanerThreadTimeoutMsec</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>(package private) static long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC</a></span></code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE">DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE</a></span></code>&nbsp;</td>
@@ -195,21 +187,17 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#OLD_WALS_CLEANER_THREAD_SIZE">OLD_WALS_CLEANER_THREAD_SIZE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC">OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#oldWALsCleaner">oldWALsCleaner</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/LinkedBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">LinkedBlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#pendingDelete">pendingDelete</a></span></code>&nbsp;</td>
 </tr>
@@ -282,28 +270,24 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>(package private) long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#getCleanerThreadCheckIntervalMsec--">getCleanerThreadCheckIntervalMsec</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i6" class="altColor">
-<td class="colFirst"><code>(package private) long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#getCleanerThreadTimeoutMsec--">getCleanerThreadTimeoutMsec</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#getSizeOfCleaners--">getSizeOfCleaners</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#interruptOldWALsCleaner--">interruptOldWALsCleaner</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
 <div class="block">This method would be called by the <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf"><code>ConfigurationManager</code></a>
  object when the <code>Configuration</code> object is reloaded from disk.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#validate-org.apache.hadoop.fs.Path-">validate</a></span>(org.apache.hadoop.fs.Path&nbsp;file)</code>
 <div class="block">Validate the file to see if it even belongs in the directory.</div>
@@ -351,7 +335,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.48">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.51">LOG</a></pre>
 </li>
 </ul>
 <a name="OLD_WALS_CLEANER_THREAD_SIZE">
@@ -360,7 +344,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>OLD_WALS_CLEANER_THREAD_SIZE</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.50">OLD_WALS_CLEANER_THREAD_SIZE</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.53">OLD_WALS_CLEANER_THREAD_SIZE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.LogCleaner.OLD_WALS_CLEANER_THREAD_SIZE">Constant Field Values</a></dd>
@@ -373,7 +357,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE</h4>
-<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.51">DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.54">DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE">Constant Field Values</a></dd>
@@ -386,7 +370,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.53">OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.56">OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.LogCleaner.OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC">Constant Field Values</a></dd>
@@ -399,46 +383,20 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC</h4>
-<pre>static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.56">DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC</a></pre>
+<pre>static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.59">DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.58">OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.LogCleaner.OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
-<a name="DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC</h4>
-<pre>static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.61">DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
 <a name="pendingDelete">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>pendingDelete</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/LinkedBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">LinkedBlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.64">pendingDelete</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/LinkedBlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">LinkedBlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.61">pendingDelete</a></pre>
 </li>
 </ul>
 <a name="oldWALsCleaner">
@@ -447,25 +405,16 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>oldWALsCleaner</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.65">oldWALsCleaner</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.62">oldWALsCleaner</a></pre>
 </li>
 </ul>
 <a name="cleanerThreadTimeoutMsec">
 <!--   -->
 </a>
-<ul class="blockList">
-<li class="blockList">
-<h4>cleanerThreadTimeoutMsec</h4>
-<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.66">cleanerThreadTimeoutMsec</a></pre>
-</li>
-</ul>
-<a name="cleanerThreadCheckIntervalMsec">
-<!--   -->
-</a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>cleanerThreadCheckIntervalMsec</h4>
-<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.67">cleanerThreadCheckIntervalMsec</a></pre>
+<h4>cleanerThreadTimeoutMsec</h4>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.63">cleanerThreadTimeoutMsec</a></pre>
 </li>
 </ul>
 </li>
@@ -482,7 +431,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockListLast">
 <li class="blockList">
 <h4>LogCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.76">LogCleaner</a>(int&nbsp;period,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.72">LogCleaner</a>(int&nbsp;period,
                   <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper,
                   org.apache.hadoop.conf.Configuration&nbsp;conf,
                   org.apache.hadoop.fs.FileSystem&nbsp;fs,
@@ -511,7 +460,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>validate</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.89">validate</a>(org.apache.hadoop.fs.Path&nbsp;file)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.83">validate</a>(org.apache.hadoop.fs.Path&nbsp;file)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#validate-org.apache.hadoop.fs.Path-">CleanerChore</a></code></span></div>
 <div class="block">Validate the file to see if it even belongs in the directory. If it is valid, then the file
  will go through the cleaner delegates, but otherwise the file is just deleted.</div>
@@ -531,7 +480,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.95">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.89">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">ConfigurationObserver</a></code></span></div>
 <div class="block">This method would be called by the <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf"><code>ConfigurationManager</code></a>
  object when the <code>Configuration</code> object is reloaded from disk.</div>
@@ -549,7 +498,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteFiles</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.115">deleteFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;org.apache.hadoop.fs.FileStatus&gt;&nbsp;filesToDelete)</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.105">deleteFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;org.apache.hadoop.fs.FileStatus&gt;&nbsp;filesToDelete)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#deleteFiles-java.lang.Iterable-">CleanerChore</a></code></span></div>
 <div class="block">Delete the given files</div>
 <dl>
@@ -568,7 +517,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.134">cleanup</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.126">cleanup</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html#cleanup--">ScheduledChore</a></code></span></div>
 <div class="block">Override to run cleanup tasks when the Chore encounters an error and must stop running</div>
 <dl>
@@ -583,7 +532,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>getSizeOfCleaners</h4>
-<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.140">getSizeOfCleaners</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.132">getSizeOfCleaners</a>()</pre>
 </li>
 </ul>
 <a name="getCleanerThreadTimeoutMsec--">
@@ -592,16 +541,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>getCleanerThreadTimeoutMsec</h4>
-<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.145">getCleanerThreadTimeoutMsec</a>()</pre>
-</li>
-</ul>
-<a name="getCleanerThreadCheckIntervalMsec--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getCleanerThreadCheckIntervalMsec</h4>
-<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.150">getCleanerThreadCheckIntervalMsec</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.137">getCleanerThreadTimeoutMsec</a>()</pre>
 </li>
 </ul>
 <a name="createOldWalsCleaner-int-">
@@ -610,7 +550,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>createOldWalsCleaner</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.154">createOldWalsCleaner</a>(int&nbsp;size)</pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.141">createOldWalsCleaner</a>(int&nbsp;size)</pre>
 </li>
 </ul>
 <a name="interruptOldWALsCleaner--">
@@ -619,7 +559,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>interruptOldWALsCleaner</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.168">interruptOldWALsCleaner</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.155">interruptOldWALsCleaner</a>()</pre>
 </li>
 </ul>
 <a name="deleteFile--">
@@ -628,7 +568,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.175">deleteFile</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.163">deleteFile</a>()</pre>
 </li>
 </ul>
 <a name="cancel-boolean-">
@@ -637,7 +577,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockListLast">
 <li class="blockList">
 <h4>cancel</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.214">cancel</a>(boolean&nbsp;mayInterruptIfRunning)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#line.191">cancel</a>(boolean&nbsp;mayInterruptIfRunning)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html#cancel-boolean-">cancel</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></code></dd>
index ba991d7..a1831af 100644 (file)
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/master/cleaner/package-summary.html">org.apache.hadoop.hbase.master.cleaner</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">LogCleaner.CleanerContext.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#createCleanerContext-org.apache.hadoop.fs.FileStatus-long-">createCleanerContext</a></span>(org.apache.hadoop.fs.FileStatus&nbsp;status,
-                    long&nbsp;timeoutMsec)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
 </li>
 </ul>
 </li>
index 4f89e1e..d1751bf 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
 </ul>
 </li>
 </ul>
index 2075de5..c8d7cba 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 </ul>
 </li>
 </ul>
index e51dd7d..b6c3c71 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
 </ul>
 </li>
 </ul>
index 340f6a7..1e87ae6 100644 (file)
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 </ul>
 </li>
 </ul>
index 9d4302e..3329a6c 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 </ul>
 </li>
 </ul>
index 816f522..8fdfb18 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
 </ul>
 </li>
 </ul>
index 74ae4b0..1d583d6 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 </ul>
 </li>
 </ul>
index 399e94d..93a5847 100644 (file)
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
 </ul>
 </li>
 </ul>
index 87e2f8c..a4e00fe 100644 (file)
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 </ul>
 </li>
index b26d46f..4720a8b 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
 </ul>
 </li>
index 66d0a39..82c818f 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ImplType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 </ul>
 </li>
 </ul>
index e7d9c59..4c9fb37 100644 (file)
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
 </ul>
 </li>
 </ul>
index cb3db44..951fb0c 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 </ul>
 </li>
 </ul>
index 66f0595..84d083c 100644 (file)
@@ -18,9 +18,9 @@
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
 <span class="sourceLineNo">011</span>  public static final String revision = "";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Mon Feb  4 15:06:28 UTC 2019";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Tue Feb  5 14:38:12 UTC 2019";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "4e068438592bcf520203e0d5717c0d76";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "c5dd962958938ab04fc14fec7b7cae88";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 
index a23f742..385182f 100644 (file)
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.util.ArrayList;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.LinkedList;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.List;<a name="line.25"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.concurrent.CountDownLatch;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.26"></a>
 <span class="sourceLineNo">027</span>import java.util.concurrent.TimeUnit;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.conf.Configuration;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.fs.FileStatus;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.FileSystem;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.fs.Path;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.slf4j.Logger;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.slf4j.LoggerFactory;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.39"></a>
+<span class="sourceLineNo">028</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.conf.Configuration;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.FileStatus;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.fs.FileSystem;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.fs.Path;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.slf4j.Logger;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.slf4j.LoggerFactory;<a name="line.39"></a>
 <span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>/**<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * This Chore, every time it runs, will attempt to delete the WALs and Procedure WALs in the old<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * logs folder. The WAL is only deleted if none of the cleaner delegates says otherwise.<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * @see BaseLogCleanerDelegate<a name="line.44"></a>
-<span class="sourceLineNo">045</span> */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>@InterfaceAudience.Private<a name="line.46"></a>
-<span class="sourceLineNo">047</span>public class LogCleaner extends CleanerChore&lt;BaseLogCleanerDelegate&gt; {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  private static final Logger LOG = LoggerFactory.getLogger(LogCleaner.class.getName());<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  public static final String OLD_WALS_CLEANER_THREAD_SIZE = "hbase.oldwals.cleaner.thread.size";<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public static final int DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE = 2;<a name="line.51"></a>
+<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>/**<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * This Chore, every time it runs, will attempt to delete the WALs and Procedure WALs in the old<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * logs folder. The WAL is only deleted if none of the cleaner delegates says otherwise.<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * @see BaseLogCleanerDelegate<a name="line.47"></a>
+<span class="sourceLineNo">048</span> */<a name="line.48"></a>
+<span class="sourceLineNo">049</span>@InterfaceAudience.Private<a name="line.49"></a>
+<span class="sourceLineNo">050</span>public class LogCleaner extends CleanerChore&lt;BaseLogCleanerDelegate&gt; {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private static final Logger LOG = LoggerFactory.getLogger(LogCleaner.class);<a name="line.51"></a>
 <span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>  public static final String OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC =<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      "hbase.oldwals.cleaner.thread.timeout.msec";<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  @VisibleForTesting<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  static final long DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC = 60 * 1000L;<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  public static final String OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC =<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      "hbase.oldwals.cleaner.thread.check.interval.msec";<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  @VisibleForTesting<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  static final long DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC = 500L;<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private final LinkedBlockingQueue&lt;CleanerContext&gt; pendingDelete;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private List&lt;Thread&gt; oldWALsCleaner;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private long cleanerThreadTimeoutMsec;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private long cleanerThreadCheckIntervalMsec;<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  /**<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * @param period the period of time to sleep between each run<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   * @param stopper the stopper<a name="line.71"></a>
-<span class="sourceLineNo">072</span>   * @param conf configuration to use<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   * @param fs handle to the FS<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   * @param oldLogDir the path to the archived logs<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public LogCleaner(final int period, final Stoppable stopper, Configuration conf, FileSystem fs,<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      Path oldLogDir) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    super("LogsCleaner", period, stopper, conf, fs, oldLogDir, HBASE_MASTER_LOGCLEANER_PLUGINS);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    this.pendingDelete = new LinkedBlockingQueue&lt;&gt;();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    int size = conf.getInt(OLD_WALS_CLEANER_THREAD_SIZE, DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    this.oldWALsCleaner = createOldWalsCleaner(size);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    this.cleanerThreadTimeoutMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.82"></a>
-<span class="sourceLineNo">083</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    this.cleanerThreadCheckIntervalMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC,<a name="line.84"></a>
-<span class="sourceLineNo">085</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC);<a name="line.85"></a>
+<span class="sourceLineNo">053</span>  public static final String OLD_WALS_CLEANER_THREAD_SIZE = "hbase.oldwals.cleaner.thread.size";<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  public static final int DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE = 2;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public static final String OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC =<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      "hbase.oldwals.cleaner.thread.timeout.msec";<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  @VisibleForTesting<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  static final long DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC = 60 * 1000L;<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private final LinkedBlockingQueue&lt;CleanerContext&gt; pendingDelete;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private List&lt;Thread&gt; oldWALsCleaner;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  private long cleanerThreadTimeoutMsec;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   * @param period the period of time to sleep between each run<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   * @param stopper the stopper<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   * @param conf configuration to use<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   * @param fs handle to the FS<a name="line.69"></a>
+<span class="sourceLineNo">070</span>   * @param oldLogDir the path to the archived logs<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  public LogCleaner(final int period, final Stoppable stopper, Configuration conf, FileSystem fs,<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      Path oldLogDir) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    super("LogsCleaner", period, stopper, conf, fs, oldLogDir, HBASE_MASTER_LOGCLEANER_PLUGINS);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    this.pendingDelete = new LinkedBlockingQueue&lt;&gt;();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    int size = conf.getInt(OLD_WALS_CLEANER_THREAD_SIZE, DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    this.oldWALsCleaner = createOldWalsCleaner(size);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    this.cleanerThreadTimeoutMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  @Override<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  protected boolean validate(Path file) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    return AbstractFSWALProvider.validateWALFilename(file.getName())<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        || MasterProcedureUtil.validateProcedureWALFilename(file.getName());<a name="line.85"></a>
 <span class="sourceLineNo">086</span>  }<a name="line.86"></a>
 <span class="sourceLineNo">087</span><a name="line.87"></a>
 <span class="sourceLineNo">088</span>  @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  protected boolean validate(Path file) {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    return AbstractFSWALProvider.validateWALFilename(file.getName())<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        || MasterProcedureUtil.validateProcedureWALFilename(file.getName());<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>  @Override<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public void onConfigurationChange(Configuration conf) {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    super.onConfigurationChange(conf);<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>    int newSize = conf.getInt(OLD_WALS_CLEANER_THREAD_SIZE, DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    if (newSize == oldWALsCleaner.size()) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      if (LOG.isDebugEnabled()) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>        LOG.debug("Size from configuration is the same as previous which is " +<a name="line.101"></a>
-<span class="sourceLineNo">102</span>          newSize + ", no need to update.");<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      return;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    }<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    interruptOldWALsCleaner();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    oldWALsCleaner = createOldWalsCleaner(newSize);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    cleanerThreadTimeoutMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.108"></a>
-<span class="sourceLineNo">109</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    cleanerThreadCheckIntervalMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC,<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">089</span>  public void onConfigurationChange(Configuration conf) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    super.onConfigurationChange(conf);<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    int newSize = conf.getInt(OLD_WALS_CLEANER_THREAD_SIZE, DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    if (newSize == oldWALsCleaner.size()) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      LOG.debug("Size from configuration is the same as previous which "<a name="line.94"></a>
+<span class="sourceLineNo">095</span>          + "is {}, no need to update.", newSize);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      return;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    }<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    interruptOldWALsCleaner();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    oldWALsCleaner = createOldWalsCleaner(newSize);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    cleanerThreadTimeoutMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @Override<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  protected int deleteFiles(Iterable&lt;FileStatus&gt; filesToDelete) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    List&lt;CleanerContext&gt; results = new ArrayList&lt;&gt;();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    for (FileStatus file : filesToDelete) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      LOG.trace("Scheduling file {} for deletion", file);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      if (file != null) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        results.add(new CleanerContext(file));<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
 <span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>  @Override<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  protected int deleteFiles(Iterable&lt;FileStatus&gt; filesToDelete) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    List&lt;CleanerContext&gt; results = new LinkedList&lt;&gt;();<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    for (FileStatus toDelete : filesToDelete) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      CleanerContext context = CleanerContext.createCleanerContext(toDelete,<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          cleanerThreadTimeoutMsec);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      if (context != null) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        pendingDelete.add(context);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        results.add(context);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>    int deletedFiles = 0;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    for (CleanerContext res : results) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      deletedFiles += res.getResult(cleanerThreadCheckIntervalMsec) ? 1 : 0;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    return deletedFiles;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  @Override<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public synchronized void cleanup() {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    super.cleanup();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    interruptOldWALsCleaner();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  @VisibleForTesting<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  int getSizeOfCleaners() {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    return oldWALsCleaner.size();<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
+<span class="sourceLineNo">114</span>    LOG.debug("Old WAL files pending deletion: {}", results);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    pendingDelete.addAll(results);<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>    int deletedFiles = 0;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    for (CleanerContext res : results) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      LOG.trace("Awaiting the results for deletion of old WAL file: {}", res);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      deletedFiles += res.getResult(this.cleanerThreadTimeoutMsec) ? 1 : 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    return deletedFiles;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>  @Override<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  public synchronized void cleanup() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    super.cleanup();<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    interruptOldWALsCleaner();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  @VisibleForTesting<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  int getSizeOfCleaners() {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    return oldWALsCleaner.size();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>  @VisibleForTesting<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  long getCleanerThreadTimeoutMsec() {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    return cleanerThreadTimeoutMsec;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>  }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>  private List&lt;Thread&gt; createOldWalsCleaner(int size) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    LOG.info("Creating {} OldWALs cleaner threads", size);<a name="line.142"></a>
 <span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  @VisibleForTesting<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  long getCleanerThreadTimeoutMsec() {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    return cleanerThreadTimeoutMsec;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>  @VisibleForTesting<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  long getCleanerThreadCheckIntervalMsec() {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    return cleanerThreadCheckIntervalMsec;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private List&lt;Thread&gt; createOldWalsCleaner(int size) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    LOG.info("Creating OldWALs cleaners with size=" + size);<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>    List&lt;Thread&gt; oldWALsCleaner = new ArrayList&lt;&gt;(size);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    for (int i = 0; i &lt; size; i++) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      Thread cleaner = new Thread(() -&gt; deleteFile());<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      cleaner.setName("OldWALsCleaner-" + i);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      cleaner.setDaemon(true);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      cleaner.start();<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      oldWALsCleaner.add(cleaner);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    return oldWALsCleaner;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private void interruptOldWALsCleaner() {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    for (Thread cleaner : oldWALsCleaner) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      cleaner.interrupt();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    }<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    oldWALsCleaner.clear();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  }<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  private void deleteFile() {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    while (true) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      CleanerContext context = null;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      boolean succeed = false;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      boolean interrupted = false;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      try {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        context = pendingDelete.take();<a name="line.181"></a>
-<span class="sourceLineNo">182</span>        if (context != null) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>          FileStatus toClean = context.getTargetToClean();<a name="line.183"></a>
-<span class="sourceLineNo">184</span>          succeed = this.fs.delete(toClean.getPath(), false);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      } catch (InterruptedException ite) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        // It's most likely from configuration changing request<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        if (context != null) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>          LOG.warn("Interrupted while cleaning oldWALs " +<a name="line.189"></a>
-<span class="sourceLineNo">190</span>              context.getTargetToClean() + ", try to clean it next round.");<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        interrupted = true;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      } catch (IOException e) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        // fs.delete() fails.<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        LOG.warn("Failed to clean oldwals with exception: " + e);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        succeed = false;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      } finally {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        if (context != null) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>          context.setResult(succeed);<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        }<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        if (interrupted) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>          // Restore interrupt status<a name="line.202"></a>
-<span class="sourceLineNo">203</span>          Thread.currentThread().interrupt();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>          break;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
+<span class="sourceLineNo">144</span>    List&lt;Thread&gt; oldWALsCleaner = new ArrayList&lt;&gt;(size);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    for (int i = 0; i &lt; size; i++) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      Thread cleaner = new Thread(() -&gt; deleteFile());<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      cleaner.setName("OldWALsCleaner-" + i);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      cleaner.setDaemon(true);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      cleaner.start();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      oldWALsCleaner.add(cleaner);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    }<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    return oldWALsCleaner;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private void interruptOldWALsCleaner() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    for (Thread cleaner : oldWALsCleaner) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      LOG.trace("Interrupting thread: {}", cleaner);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      cleaner.interrupt();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    oldWALsCleaner.clear();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>  private void deleteFile() {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    while (true) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      try {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        final CleanerContext context = pendingDelete.take();<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        Preconditions.checkNotNull(context);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        FileStatus oldWalFile = context.getTargetToClean();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        try {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>          LOG.debug("Attempting to delete old WAL file: {}", oldWalFile);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>          boolean succeed = this.fs.delete(oldWalFile.getPath(), false);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>          context.setResult(succeed);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        } catch (IOException e) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>          // fs.delete() fails.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>          LOG.warn("Failed to clean old WAL file", e);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          context.setResult(false);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      } catch (InterruptedException ite) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        // It is most likely from configuration changing request<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        LOG.warn("Interrupted while cleaning old WALs, will "<a name="line.180"></a>
+<span class="sourceLineNo">181</span>            + "try to clean it next round. Exiting.");<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        // Restore interrupt status<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        Thread.currentThread().interrupt();<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        return;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      }<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      LOG.debug("Exiting");<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>  @Override<a name="line.190"></a>
+<span class="sourceLineNo">191</span>  public synchronized void cancel(boolean mayInterruptIfRunning) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    LOG.debug("Cancelling LogCleaner");<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    super.cancel(mayInterruptIfRunning);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    interruptOldWALsCleaner();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>  private static final class CleanerContext {<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>    final FileStatus target;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    final AtomicBoolean result;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    final CountDownLatch remainingResults;<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    private CleanerContext(FileStatus status) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      this.target = status;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      this.result = new AtomicBoolean(false);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      this.remainingResults = new CountDownLatch(1);<a name="line.206"></a>
 <span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    if (LOG.isDebugEnabled()) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      LOG.debug("Exiting cleaner.");<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  }<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span>  @Override<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  public synchronized void cancel(boolean mayInterruptIfRunning) {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    super.cancel(mayInterruptIfRunning);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    for (Thread t : oldWALsCleaner) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      t.interrupt();<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    }<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private static final class CleanerContext {<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>    final FileStatus target;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    volatile boolean result;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    volatile boolean setFromCleaner = false;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    long timeoutMsec;<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>    static CleanerContext createCleanerContext(FileStatus status, long timeoutMsec) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return status != null ? new CleanerContext(status, timeoutMsec) : null;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>    private CleanerContext(FileStatus status, long timeoutMsec) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      this.target = status;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      this.result = false;<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      this.timeoutMsec = timeoutMsec;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    synchronized void setResult(boolean res) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      this.result = res;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.setFromCleaner = true;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      notify();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    synchronized boolean getResult(long waitIfNotFinished) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      long totalTimeMsec = 0;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      try {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        while (!setFromCleaner) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          long startTimeNanos = System.nanoTime();<a name="line.248"></a>
-<span class="sourceLineNo">249</span>          wait(waitIfNotFinished);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>          totalTimeMsec += TimeUnit.MILLISECONDS.convert(System.nanoTime() - startTimeNanos,<a name="line.250"></a>
-<span class="sourceLineNo">251</span>              TimeUnit.NANOSECONDS);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>          if (totalTimeMsec &gt;= timeoutMsec) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>            LOG.warn("Spend too much time " + totalTimeMsec + " ms to delete oldwals " + target);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>            return result;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>          }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        }<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      } catch (InterruptedException e) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        LOG.warn("Interrupted while waiting deletion of " + target);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        return result;<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      return result;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>    FileStatus getTargetToClean() {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      return target;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>}<a name="line.268"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>    void setResult(boolean res) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      this.result.set(res);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      this.remainingResults.countDown();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    boolean getResult(long waitIfNotFinished) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      try {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        boolean completed = this.remainingResults.await(waitIfNotFinished,<a name="line.216"></a>
+<span class="sourceLineNo">217</span>            TimeUnit.MILLISECONDS);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        if (!completed) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          LOG.warn("Spend too much time [{}ms] to delete old WAL file: {}",<a name="line.219"></a>
+<span class="sourceLineNo">220</span>              waitIfNotFinished, target);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>          return false;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      } catch (InterruptedException e) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        LOG.warn("Interrupted while awaiting deletion of WAL file: {}", target);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        return false;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      return result.get();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    FileStatus getTargetToClean() {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      return target;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>    @Override<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    public String toString() {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      return "CleanerContext [target=" + target + ", result=" + result + "]";<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>}<a name="line.239"></a>
 
 
 
index a23f742..385182f 100644 (file)
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.util.ArrayList;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.LinkedList;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.List;<a name="line.25"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.concurrent.CountDownLatch;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.26"></a>
 <span class="sourceLineNo">027</span>import java.util.concurrent.TimeUnit;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.conf.Configuration;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.fs.FileStatus;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.FileSystem;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.fs.Path;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.slf4j.Logger;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.slf4j.LoggerFactory;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.39"></a>
+<span class="sourceLineNo">028</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.conf.Configuration;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.FileStatus;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.fs.FileSystem;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.fs.Path;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.slf4j.Logger;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.slf4j.LoggerFactory;<a name="line.39"></a>
 <span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>/**<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * This Chore, every time it runs, will attempt to delete the WALs and Procedure WALs in the old<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * logs folder. The WAL is only deleted if none of the cleaner delegates says otherwise.<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * @see BaseLogCleanerDelegate<a name="line.44"></a>
-<span class="sourceLineNo">045</span> */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>@InterfaceAudience.Private<a name="line.46"></a>
-<span class="sourceLineNo">047</span>public class LogCleaner extends CleanerChore&lt;BaseLogCleanerDelegate&gt; {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  private static final Logger LOG = LoggerFactory.getLogger(LogCleaner.class.getName());<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  public static final String OLD_WALS_CLEANER_THREAD_SIZE = "hbase.oldwals.cleaner.thread.size";<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public static final int DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE = 2;<a name="line.51"></a>
+<span class="sourceLineNo">041</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>/**<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * This Chore, every time it runs, will attempt to delete the WALs and Procedure WALs in the old<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * logs folder. The WAL is only deleted if none of the cleaner delegates says otherwise.<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * @see BaseLogCleanerDelegate<a name="line.47"></a>
+<span class="sourceLineNo">048</span> */<a name="line.48"></a>
+<span class="sourceLineNo">049</span>@InterfaceAudience.Private<a name="line.49"></a>
+<span class="sourceLineNo">050</span>public class LogCleaner extends CleanerChore&lt;BaseLogCleanerDelegate&gt; {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private static final Logger LOG = LoggerFactory.getLogger(LogCleaner.class);<a name="line.51"></a>
 <span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>  public static final String OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC =<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      "hbase.oldwals.cleaner.thread.timeout.msec";<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  @VisibleForTesting<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  static final long DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC = 60 * 1000L;<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  public static final String OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC =<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      "hbase.oldwals.cleaner.thread.check.interval.msec";<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  @VisibleForTesting<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  static final long DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC = 500L;<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private final LinkedBlockingQueue&lt;CleanerContext&gt; pendingDelete;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private List&lt;Thread&gt; oldWALsCleaner;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private long cleanerThreadTimeoutMsec;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private long cleanerThreadCheckIntervalMsec;<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  /**<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * @param period the period of time to sleep between each run<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   * @param stopper the stopper<a name="line.71"></a>
-<span class="sourceLineNo">072</span>   * @param conf configuration to use<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   * @param fs handle to the FS<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   * @param oldLogDir the path to the archived logs<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public LogCleaner(final int period, final Stoppable stopper, Configuration conf, FileSystem fs,<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      Path oldLogDir) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    super("LogsCleaner", period, stopper, conf, fs, oldLogDir, HBASE_MASTER_LOGCLEANER_PLUGINS);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    this.pendingDelete = new LinkedBlockingQueue&lt;&gt;();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    int size = conf.getInt(OLD_WALS_CLEANER_THREAD_SIZE, DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    this.oldWALsCleaner = createOldWalsCleaner(size);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    this.cleanerThreadTimeoutMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.82"></a>
-<span class="sourceLineNo">083</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    this.cleanerThreadCheckIntervalMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC,<a name="line.84"></a>
-<span class="sourceLineNo">085</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC);<a name="line.85"></a>
+<span class="sourceLineNo">053</span>  public static final String OLD_WALS_CLEANER_THREAD_SIZE = "hbase.oldwals.cleaner.thread.size";<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  public static final int DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE = 2;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public static final String OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC =<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      "hbase.oldwals.cleaner.thread.timeout.msec";<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  @VisibleForTesting<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  static final long DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC = 60 * 1000L;<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private final LinkedBlockingQueue&lt;CleanerContext&gt; pendingDelete;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private List&lt;Thread&gt; oldWALsCleaner;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  private long cleanerThreadTimeoutMsec;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   * @param period the period of time to sleep between each run<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   * @param stopper the stopper<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   * @param conf configuration to use<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   * @param fs handle to the FS<a name="line.69"></a>
+<span class="sourceLineNo">070</span>   * @param oldLogDir the path to the archived logs<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  public LogCleaner(final int period, final Stoppable stopper, Configuration conf, FileSystem fs,<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      Path oldLogDir) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    super("LogsCleaner", period, stopper, conf, fs, oldLogDir, HBASE_MASTER_LOGCLEANER_PLUGINS);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    this.pendingDelete = new LinkedBlockingQueue&lt;&gt;();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    int size = conf.getInt(OLD_WALS_CLEANER_THREAD_SIZE, DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    this.oldWALsCleaner = createOldWalsCleaner(size);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    this.cleanerThreadTimeoutMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  @Override<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  protected boolean validate(Path file) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    return AbstractFSWALProvider.validateWALFilename(file.getName())<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        || MasterProcedureUtil.validateProcedureWALFilename(file.getName());<a name="line.85"></a>
 <span class="sourceLineNo">086</span>  }<a name="line.86"></a>
 <span class="sourceLineNo">087</span><a name="line.87"></a>
 <span class="sourceLineNo">088</span>  @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  protected boolean validate(Path file) {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    return AbstractFSWALProvider.validateWALFilename(file.getName())<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        || MasterProcedureUtil.validateProcedureWALFilename(file.getName());<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>  @Override<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public void onConfigurationChange(Configuration conf) {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    super.onConfigurationChange(conf);<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>    int newSize = conf.getInt(OLD_WALS_CLEANER_THREAD_SIZE, DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    if (newSize == oldWALsCleaner.size()) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      if (LOG.isDebugEnabled()) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>        LOG.debug("Size from configuration is the same as previous which is " +<a name="line.101"></a>
-<span class="sourceLineNo">102</span>          newSize + ", no need to update.");<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      return;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    }<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    interruptOldWALsCleaner();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    oldWALsCleaner = createOldWalsCleaner(newSize);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    cleanerThreadTimeoutMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.108"></a>
-<span class="sourceLineNo">109</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    cleanerThreadCheckIntervalMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC,<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">089</span>  public void onConfigurationChange(Configuration conf) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    super.onConfigurationChange(conf);<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    int newSize = conf.getInt(OLD_WALS_CLEANER_THREAD_SIZE, DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    if (newSize == oldWALsCleaner.size()) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      LOG.debug("Size from configuration is the same as previous which "<a name="line.94"></a>
+<span class="sourceLineNo">095</span>          + "is {}, no need to update.", newSize);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      return;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    }<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    interruptOldWALsCleaner();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    oldWALsCleaner = createOldWalsCleaner(newSize);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    cleanerThreadTimeoutMsec = conf.getLong(OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @Override<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  protected int deleteFiles(Iterable&lt;FileStatus&gt; filesToDelete) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    List&lt;CleanerContext&gt; results = new ArrayList&lt;&gt;();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    for (FileStatus file : filesToDelete) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      LOG.trace("Scheduling file {} for deletion", file);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      if (file != null) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        results.add(new CleanerContext(file));<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
 <span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>  @Override<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  protected int deleteFiles(Iterable&lt;FileStatus&gt; filesToDelete) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    List&lt;CleanerContext&gt; results = new LinkedList&lt;&gt;();<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    for (FileStatus toDelete : filesToDelete) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      CleanerContext context = CleanerContext.createCleanerContext(toDelete,<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          cleanerThreadTimeoutMsec);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      if (context != null) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        pendingDelete.add(context);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        results.add(context);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>    int deletedFiles = 0;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    for (CleanerContext res : results) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      deletedFiles += res.getResult(cleanerThreadCheckIntervalMsec) ? 1 : 0;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    return deletedFiles;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  @Override<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public synchronized void cleanup() {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    super.cleanup();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    interruptOldWALsCleaner();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  @VisibleForTesting<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  int getSizeOfCleaners() {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    return oldWALsCleaner.size();<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
+<span class="sourceLineNo">114</span>    LOG.debug("Old WAL files pending deletion: {}", results);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    pendingDelete.addAll(results);<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>    int deletedFiles = 0;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    for (CleanerContext res : results) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      LOG.trace("Awaiting the results for deletion of old WAL file: {}", res);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      deletedFiles += res.getResult(this.cleanerThreadTimeoutMsec) ? 1 : 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    return deletedFiles;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>  @Override<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  public synchronized void cleanup() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    super.cleanup();<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    interruptOldWALsCleaner();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  @VisibleForTesting<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  int getSizeOfCleaners() {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    return oldWALsCleaner.size();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>  @VisibleForTesting<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  long getCleanerThreadTimeoutMsec() {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    return cleanerThreadTimeoutMsec;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>  }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>  private List&lt;Thread&gt; createOldWalsCleaner(int size) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    LOG.info("Creating {} OldWALs cleaner threads", size);<a name="line.142"></a>
 <span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  @VisibleForTesting<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  long getCleanerThreadTimeoutMsec() {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    return cleanerThreadTimeoutMsec;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>  @VisibleForTesting<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  long getCleanerThreadCheckIntervalMsec() {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    return cleanerThreadCheckIntervalMsec;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private List&lt;Thread&gt; createOldWalsCleaner(int size) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    LOG.info("Creating OldWALs cleaners with size=" + size);<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>    List&lt;Thread&gt; oldWALsCleaner = new ArrayList&lt;&gt;(size);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    for (int i = 0; i &lt; size; i++) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      Thread cleaner = new Thread(() -&gt; deleteFile());<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      cleaner.setName("OldWALsCleaner-" + i);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      cleaner.setDaemon(true);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      cleaner.start();<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      oldWALsCleaner.add(cleaner);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    return oldWALsCleaner;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private void interruptOldWALsCleaner() {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    for (Thread cleaner : oldWALsCleaner) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      cleaner.interrupt();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    }<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    oldWALsCleaner.clear();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  }<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  private void deleteFile() {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    while (true) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      CleanerContext context = null;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      boolean succeed = false;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      boolean interrupted = false;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      try {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        context = pendingDelete.take();<a name="line.181"></a>
-<span class="sourceLineNo">182</span>        if (context != null) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>          FileStatus toClean = context.getTargetToClean();<a name="line.183"></a>
-<span class="sourceLineNo">184</span>          succeed = this.fs.delete(toClean.getPath(), false);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      } catch (InterruptedException ite) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        // It's most likely from configuration changing request<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        if (context != null) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>          LOG.warn("Interrupted while cleaning oldWALs " +<a name="line.189"></a>
-<span class="sourceLineNo">190</span>              context.getTargetToClean() + ", try to clean it next round.");<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        interrupted = true;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      } catch (IOException e) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        // fs.delete() fails.<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        LOG.warn("Failed to clean oldwals with exception: " + e);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        succeed = false;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      } finally {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        if (context != null) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>          context.setResult(succeed);<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        }<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        if (interrupted) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>          // Restore interrupt status<a name="line.202"></a>
-<span class="sourceLineNo">203</span>          Thread.currentThread().interrupt();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>          break;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
+<span class="sourceLineNo">144</span>    List&lt;Thread&gt; oldWALsCleaner = new ArrayList&lt;&gt;(size);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    for (int i = 0; i &lt; size; i++) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      Thread cleaner = new Thread(() -&gt; deleteFile());<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      cleaner.setName("OldWALsCleaner-" + i);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      cleaner.setDaemon(true);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      cleaner.start();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      oldWALsCleaner.add(cleaner);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    }<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    return oldWALsCleaner;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private void interruptOldWALsCleaner() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    for (Thread cleaner : oldWALsCleaner) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      LOG.trace("Interrupting thread: {}", cleaner);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      cleaner.interrupt();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    oldWALsCleaner.clear();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>  private void deleteFile() {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    while (true) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      try {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        final CleanerContext context = pendingDelete.take();<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        Preconditions.checkNotNull(context);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        FileStatus oldWalFile = context.getTargetToClean();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        try {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>          LOG.debug("Attempting to delete old WAL file: {}", oldWalFile);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>          boolean succeed = this.fs.delete(oldWalFile.getPath(), false);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>          context.setResult(succeed);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        } catch (IOException e) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>          // fs.delete() fails.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>          LOG.warn("Failed to clean old WAL file", e);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          context.setResult(false);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      } catch (InterruptedException ite) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        // It is most likely from configuration changing request<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        LOG.warn("Interrupted while cleaning old WALs, will "<a name="line.180"></a>
+<span class="sourceLineNo">181</span>            + "try to clean it next round. Exiting.");<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        // Restore interrupt status<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        Thread.currentThread().interrupt();<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        return;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      }<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      LOG.debug("Exiting");<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>  @Override<a name="line.190"></a>
+<span class="sourceLineNo">191</span>  public synchronized void cancel(boolean mayInterruptIfRunning) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    LOG.debug("Cancelling LogCleaner");<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    super.cancel(mayInterruptIfRunning);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    interruptOldWALsCleaner();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>  private static final class CleanerContext {<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>    final FileStatus target;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    final AtomicBoolean result;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    final CountDownLatch remainingResults;<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    private CleanerContext(FileStatus status) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      this.target = status;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      this.result = new AtomicBoolean(false);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      this.remainingResults = new CountDownLatch(1);<a name="line.206"></a>
 <span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    if (LOG.isDebugEnabled()) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      LOG.debug("Exiting cleaner.");<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  }<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span>  @Override<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  public synchronized void cancel(boolean mayInterruptIfRunning) {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    super.cancel(mayInterruptIfRunning);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    for (Thread t : oldWALsCleaner) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      t.interrupt();<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    }<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private static final class CleanerContext {<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>    final FileStatus target;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    volatile boolean result;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    volatile boolean setFromCleaner = false;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    long timeoutMsec;<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>    static CleanerContext createCleanerContext(FileStatus status, long timeoutMsec) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return status != null ? new CleanerContext(status, timeoutMsec) : null;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>    private CleanerContext(FileStatus status, long timeoutMsec) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      this.target = status;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      this.result = false;<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      this.timeoutMsec = timeoutMsec;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    synchronized void setResult(boolean res) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      this.result = res;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.setFromCleaner = true;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      notify();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    synchronized boolean getResult(long waitIfNotFinished) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      long totalTimeMsec = 0;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      try {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        while (!setFromCleaner) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          long startTimeNanos = System.nanoTime();<a name="line.248"></a>
-<span class="sourceLineNo">249</span>          wait(waitIfNotFinished);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>          totalTimeMsec += TimeUnit.MILLISECONDS.convert(System.nanoTime() - startTimeNanos,<a name="line.250"></a>
-<span class="sourceLineNo">251</span>              TimeUnit.NANOSECONDS);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>          if (totalTimeMsec &gt;= timeoutMsec) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>            LOG.warn("Spend too much time " + totalTimeMsec + " ms to delete oldwals " + target);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>            return result;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>          }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        }<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      } catch (InterruptedException e) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        LOG.warn("Interrupted while waiting deletion of " + target);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        return result;<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      return result;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>    FileStatus getTargetToClean() {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      return target;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>}<a name="line.268"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>    void setResult(boolean res) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      this.result.set(res);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      this.remainingResults.countDown();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    boolean getResult(long waitIfNotFinished) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      try {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        boolean completed = this.remainingResults.await(waitIfNotFinished,<a name="line.216"></a>
+<span class="sourceLineNo">217</span>            TimeUnit.MILLISECONDS);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        if (!completed) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          LOG.warn("Spend too much time [{}ms] to delete old WAL file: {}",<a name="line.219"></a>
+<span class="sourceLineNo">220</span>              waitIfNotFinished, target);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>          return false;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      } catch (InterruptedException e) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        LOG.warn("Interrupted while awaiting deletion of WAL file: {}", target);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        return false;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      return result.get();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    FileStatus getTargetToClean() {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      return target;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>    @Override<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    public String toString() {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      return "CleanerContext [target=" + target + ", result=" + result + "]";<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>}<a name="line.239"></a>
 
 
 
index 5434a37..ad0a57b 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase Downloads</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -489,7 +489,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 4a96366..087e862 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -341,7 +341,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index c70f423..d510fea 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -421,7 +421,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 447efe2..d2665bf 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 5b58c53..a860c0f 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 419cdfe..9c73605 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index f442ca1..3b20aeb 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index b913b90..39413ca 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -469,7 +469,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 21def1f..6a63ef4 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -450,7 +450,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 14c76c8..57bc308 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index b5fc027..bd5d1bd 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 2484163..5e2e7b0 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase\99</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -779,7 +779,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 4234eca..7125f4b 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index ff17c04..c0b6b11 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index ab62f71..39c0bc2 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 2cec659..ab89550 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -318,7 +318,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 9c743ec..8ef737e 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -313,7 +313,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index c288658..057e6ec 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <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.4-HBase.min.css" />
@@ -341,7 +341,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 7751322..ffe24bb 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 1ef5011..b8bc4d3 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase\99 Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -343,7 +343,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 69615de..047a71f 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -530,7 +530,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: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index b1f5df8..a366ae9 100644 (file)
@@ -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="20190204" />
+    <meta name="Date-Revision-yyyymmdd" content="20190205" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-05</li>
             </p>
                 </div>
 
index 2b6f3ef..a867462 100644 (file)
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/test/LoadTestDataGeneratorWithACL.html#beforeMutate-long-org.apache.hadoop.hbase.client.Mutation-">beforeMutate(long, Mutation)</a></span> - Method in class org.apache.hadoop.hbase.util.test.<a href="org/apache/hadoop/hbase/util/test/LoadTestDataGeneratorWithACL.html" title="class in org.apache.hadoop.hbase.util.test">LoadTestDataGeneratorWithACL</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#beforeTest--">beforeTest()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestLogsCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html#beforeTestMethod--">beforeTestMethod()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerMetrics</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestWALLockup.DodgyFSLog.html#beforeWaitOnSafePoint--">beforeWaitOnSafePoint()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestWALLockup.DodgyFSLog.html" title="class in org.apache.hadoop.hbase.regionserver">TestWALLockup.DodgyFSLog</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticBalancerPickers.html#conf">conf</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticBalancerPickers.html" title="class in org.apache.hadoop.hbase.master.balancer">TestFavoredStochasticBalancerPickers</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#conf">conf</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestLogsCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestReplicationHFileCleaner.html#conf">conf</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestReplicationHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestReplicationHFileCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MockNoopMasterServices.html#conf">conf</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MockNoopMasterServices.html" title="class in org.apache.hadoop.hbase.master">MockNoopMasterServices</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestCellBuilder.html#OLD_DATA">OLD_DATA</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestCellBuilder.html" title="class in org.apache.hadoop.hbase">TestCellBuilder</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#OLD_PROCEDURE_WALS_DIR">OLD_PROCEDURE_WALS_DIR</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestLogsCleaner</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#OLD_WALS_DIR">OLD_WALS_DIR</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestLogsCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestDateTieredCompactionPolicy.html#olderThanMaxAge--">olderThanMaxAge()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestDateTieredCompactionPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">TestDateTieredCompactionPolicy</a></dt>
 <dd>
 <div class="block">Older than now(161) - maxAge(100)</div>
index b726ce9..7e63870 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
 </ul>
 </li>
 </ul>
index 91a0bb2..a41ff6b 100644 (file)
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.340">TestLogsCleaner.DummyServer</a>
+<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.342">TestLogsCleaner.DummyServer</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements org.apache.hadoop.hbase.Server</pre>
 </li>
@@ -240,7 +240,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DummyServer</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.340">DummyServer</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.342">DummyServer</a>()</pre>
 </li>
 </ul>
 </li>
@@ -257,7 +257,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.343">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.345">getConfiguration</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getConfiguration</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -270,7 +270,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getZooKeeper</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.ZKWatcher&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.348">getZooKeeper</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.ZKWatcher&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.350">getZooKeeper</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getZooKeeper</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -283,7 +283,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoordinatedStateManager</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.CoordinatedStateManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.358">getCoordinatedStateManager</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.CoordinatedStateManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.360">getCoordinatedStateManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getCoordinatedStateManager</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -296,7 +296,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConnection</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.363">getConnection</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.365">getConnection</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getConnection</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -309,7 +309,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.ServerName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.368">getServerName</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.ServerName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.370">getServerName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getServerName</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -322,7 +322,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.373">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.375">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -336,7 +336,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>isAborted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.376">isAborted</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.378">isAborted</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>isAborted</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Abortable</code></dd>
@@ -349,7 +349,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.381">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.383">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>stop</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Stoppable</code></dd>
@@ -362,7 +362,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.384">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.386">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>isStopped</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Stoppable</code></dd>
@@ -375,7 +375,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getChoreService</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.ChoreService&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.389">getChoreService</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.ChoreService&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.391">getChoreService</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getChoreService</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -388,7 +388,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterConnection</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.394">getClusterConnection</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.396">getClusterConnection</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getClusterConnection</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -401,7 +401,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileSystem</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.399">getFileSystem</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.401">getFileSystem</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getFileSystem</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -414,7 +414,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopping</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.404">isStopping</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.406">isStopping</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>isStopping</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -427,7 +427,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createConnection</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.client.Connection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.409">createConnection</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>public&nbsp;org.apache.hadoop.hbase.client.Connection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.DummyServer.html#line.411">createConnection</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                                                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
index c80c225..e4b853e 100644 (file)
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.414">TestLogsCleaner.FaultyZooKeeperWatcher</a>
+<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.416">TestLogsCleaner.FaultyZooKeeperWatcher</a>
 extends org.apache.hadoop.hbase.zookeeper.ZKWatcher</pre>
 </li>
 </ul>
@@ -245,7 +245,7 @@ extends org.apache.hadoop.hbase.zookeeper.ZKWatcher</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>zk</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.FaultyZooKeeperWatcher.html#line.415">zk</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.FaultyZooKeeperWatcher.html#line.417">zk</a></pre>
 </li>
 </ul>
 </li>
@@ -262,7 +262,7 @@ extends org.apache.hadoop.hbase.zookeeper.ZKWatcher</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FaultyZooKeeperWatcher</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.FaultyZooKeeperWatcher.html#line.417">FaultyZooKeeperWatcher</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.FaultyZooKeeperWatcher.html#line.419">FaultyZooKeeperWatcher</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
                               org.apache.hadoop.hbase.Abortable&nbsp;abortable)
                        throws org.apache.hadoop.hbase.ZooKeeperConnectionException,
@@ -288,7 +288,7 @@ extends org.apache.hadoop.hbase.zookeeper.ZKWatcher</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>init</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.FaultyZooKeeperWatcher.html#line.422">init</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.FaultyZooKeeperWatcher.html#line.424">init</a>()
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -302,7 +302,7 @@ extends org.apache.hadoop.hbase.zookeeper.ZKWatcher</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getRecoverableZooKeeper</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.FaultyZooKeeperWatcher.html#line.429">getRecoverableZooKeeper</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.FaultyZooKeeperWatcher.html#line.431">getRecoverableZooKeeper</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code>getRecoverableZooKeeper</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.zookeeper.ZKWatcher</code></dd>
index 9ba8235..2b90a80 100644 (file)
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.73">TestLogsCleaner</a>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.77">TestLogsCleaner</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -157,10 +157,22 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private static org.apache.hadoop.conf.Configuration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#conf">conf</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static org.apache.hadoop.fs.Path</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#OLD_PROCEDURE_WALS_DIR">OLD_PROCEDURE_WALS_DIR</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
+<td class="colFirst"><code>private static org.apache.hadoop.fs.Path</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#OLD_WALS_DIR">OLD_WALS_DIR</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
@@ -197,35 +209,39 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#beforeTest--">beforeTest</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#createFiles-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-int-">createFiles</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
            org.apache.hadoop.fs.Path&nbsp;parentDir,
            int&nbsp;numOfFiles)</code>&nbsp;</td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#tearDownAfterClass--">tearDownAfterClass</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#testLogCleaning--">testLogCleaning</a></span>()</code>
 <div class="block">This tests verifies LogCleaner works correctly with WALs and Procedure WALs located
  in the same oldWALs directory.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#testOnConfigurationChange--">testOnConfigurationChange</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#testZooKeeperAbortDuringGetListOfReplicators--">testZooKeeperAbortDuringGetListOfReplicators</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#testZooKeeperNormal--">testZooKeeperNormal</a></span>()</code>
 <div class="block">When zk is working both files should be returned</div>
@@ -259,7 +275,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.76">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.80">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -268,16 +284,43 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.79">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.83">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.80">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.84">TEST_UTIL</a></pre>
+</li>
+</ul>
+<a name="OLD_WALS_DIR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>OLD_WALS_DIR</h4>
+<pre>private static final&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.86">OLD_WALS_DIR</a></pre>
+</li>
+</ul>
+<a name="OLD_PROCEDURE_WALS_DIR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>OLD_PROCEDURE_WALS_DIR</h4>
+<pre>private static final&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.89">OLD_PROCEDURE_WALS_DIR</a></pre>
+</li>
+</ul>
+<a name="conf">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>conf</h4>
+<pre>private static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.92">conf</a></pre>
 </li>
 </ul>
 </li>
@@ -294,7 +337,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestLogsCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.73">TestLogsCleaner</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.77">TestLogsCleaner</a>()</pre>
 </li>
 </ul>
 </li>
@@ -311,7 +354,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.83">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.95">setUpBeforeClass</a>()
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -325,7 +368,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.90">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.102">tearDownAfterClass</a>()
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -333,13 +376,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="beforeTest--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>beforeTest</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.108">beforeTest</a>()
+                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="testLogCleaning--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>testLogCleaning</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.113">testLogCleaning</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.137">testLogCleaning</a>()
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">This tests verifies LogCleaner works correctly with WALs and Procedure WALs located
  in the same oldWALs directory.
@@ -368,7 +425,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testZooKeeperAbortDuringGetListOfReplicators</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.203">testZooKeeperAbortDuringGetListOfReplicators</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.227">testZooKeeperAbortDuringGetListOfReplicators</a>()
                                                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -382,7 +439,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testZooKeeperNormal</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.252">testZooKeeperNormal</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.274">testZooKeeperNormal</a>()
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">When zk is working both files should be returned</div>
 <dl>
@@ -397,7 +454,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testOnConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.278">testOnConfigurationChange</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.299">testOnConfigurationChange</a>()
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -411,7 +468,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createFiles</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.326">createFiles</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.html#line.331">createFiles</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                          org.apache.hadoop.fs.Path&nbsp;parentDir,
                          int&nbsp;numOfFiles)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
index 94b2a21..83417e3 100644 (file)
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 </ul>
 </li>
 </ul>
index b2cf5a6..8e8d54b 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;V&gt;, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
+<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
+<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;V&gt;, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.procedure.ProcedureManager
index 541be86..b7503cb 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureBypass.StuckStateMachineState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureBypass.StuckStateMachineState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
 </ul>
index cb99d71..c7c9c2b 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
 </ul>
 </li>
 </ul>
index bc90752..0d02bf1 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 </ul>
index a91b339..cba2a7a 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/TestWALSplit.Corruptions.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/TestWALSplit.Corruptions.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 </ul>
 </li>
 </ul>
index b6665c1..0fe9c05 100644 (file)
 <span class="sourceLineNo">026</span><a name="line.26"></a>
 <span class="sourceLineNo">027</span>import java.io.IOException;<a name="line.27"></a>
 <span class="sourceLineNo">028</span>import java.net.URLEncoder;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.Iterator;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.List;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.Random;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.conf.Configuration;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.fs.FileStatus;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.fs.FileSystem;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.fs.Path;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.Abortable;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HConstants;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.Server;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.ServerName;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.Waiter;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.replication.ReplicationQueueStorage;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.replication.ReplicationStorageFactory;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.zookeeper.KeeperException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.junit.AfterClass;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.junit.BeforeClass;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.junit.ClassRule;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.junit.Test;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.junit.experimental.categories.Category;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.mockito.invocation.InvocationOnMock;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.mockito.stubbing.Answer;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.slf4j.Logger;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.slf4j.LoggerFactory;<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>@Category({MasterTests.class, MediumTests.class})<a name="line.72"></a>
-<span class="sourceLineNo">073</span>public class TestLogsCleaner {<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  @ClassRule<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      HBaseClassTestRule.forClass(TestLogsCleaner.class);<a name="line.77"></a>
+<span class="sourceLineNo">029</span>import java.nio.charset.StandardCharsets;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.Arrays;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.Iterator;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.List;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.concurrent.ThreadLocalRandom;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.commons.io.FileUtils;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.commons.lang3.RandomUtils;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.conf.Configuration;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.fs.FileStatus;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.fs.FileSystem;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.fs.Path;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.Abortable;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HConstants;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.Server;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.ServerName;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.Waiter;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ZooKeeperConnectionException;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.replication.ReplicationQueueStorage;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.replication.ReplicationStorageFactory;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.zookeeper.KeeperException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.junit.AfterClass;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.junit.Before;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.BeforeClass;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.ClassRule;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.junit.Test;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.junit.experimental.categories.Category;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.mockito.invocation.InvocationOnMock;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.mockito.stubbing.Answer;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.slf4j.Logger;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.slf4j.LoggerFactory;<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>@Category({MasterTests.class, MediumTests.class})<a name="line.76"></a>
+<span class="sourceLineNo">077</span>public class TestLogsCleaner {<a name="line.77"></a>
 <span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private static final Logger LOG = LoggerFactory.getLogger(TestLogsCleaner.class);<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  @BeforeClass<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public static void setUpBeforeClass() throws Exception {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    TEST_UTIL.startMiniZKCluster();<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    TEST_UTIL.startMiniDFSCluster(1);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    CleanerChore.initChorePool(TEST_UTIL.getConfiguration());<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
+<span class="sourceLineNo">079</span>  @ClassRule<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      HBaseClassTestRule.forClass(TestLogsCleaner.class);<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private static final Logger LOG = LoggerFactory.getLogger(TestLogsCleaner.class);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private static final Path OLD_WALS_DIR =<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      new Path(TEST_UTIL.getDataTestDir(), HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.87"></a>
 <span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  @AfterClass<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public static void tearDownAfterClass() throws Exception {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    TEST_UTIL.shutdownMiniZKCluster();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    TEST_UTIL.shutdownMiniDFSCluster();<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  /**<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * This tests verifies LogCleaner works correctly with WALs and Procedure WALs located<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   * in the same oldWALs directory.<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   * Created files:<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   * - 2 invalid files<a name="line.99"></a>
-<span class="sourceLineNo">100</span>   * - 5 old Procedure WALs<a name="line.100"></a>
-<span class="sourceLineNo">101</span>   * - 30 old WALs from which 3 are in replication<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * - 5 recent Procedure WALs<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * - 1 recent WAL<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * - 1 very new WAL (timestamp in future)<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * - masterProcedureWALs subdirectory<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * Files which should stay:<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * - 3 replication WALs<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * - 2 new WALs<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * - 5 latest Procedure WALs<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * - masterProcedureWALs subdirectory<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  @Test<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public void testLogCleaning() throws Exception {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    Configuration conf = TEST_UTIL.getConfiguration();<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    // set TTLs<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    long ttlWAL = 2000;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    long ttlProcedureWAL = 4000;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    conf.setLong("hbase.master.logcleaner.ttl", ttlWAL);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    conf.setLong("hbase.master.procedurewalcleaner.ttl", ttlProcedureWAL);<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>    HMaster.decorateMasterConfiguration(conf);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    Server server = new DummyServer();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    ReplicationQueueStorage queueStorage =<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        ReplicationStorageFactory.getReplicationQueueStorage(server.getZooKeeper(), conf);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    final Path oldLogDir = new Path(TEST_UTIL.getDataTestDir(), HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    final Path oldProcedureWALDir = new Path(oldLogDir, "masterProcedureWALs");<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    String fakeMachineName = URLEncoder.encode(server.getServerName().toString(), "UTF8");<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>    final FileSystem fs = FileSystem.get(conf);<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>    long now = System.currentTimeMillis();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    fs.delete(oldLogDir, true);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    fs.mkdirs(oldLogDir);<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>    // Case 1: 2 invalid files, which would be deleted directly<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    fs.createNewFile(new Path(oldLogDir, "a"));<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    fs.createNewFile(new Path(oldLogDir, fakeMachineName + "." + "a"));<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>    // Case 2: 5 Procedure WALs that are old which would be deleted<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    for (int i = 1; i &lt; 6; i++) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      Path fileName = new Path(oldProcedureWALDir, String.format("pv2-%020d.log", i));<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      fs.createNewFile(fileName);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>    // Sleep for sometime to get old procedure WALs<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    Thread.sleep(ttlProcedureWAL - ttlWAL);<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>    // Case 3: old WALs which would be deletable<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    for (int i = 1; i &lt; 31; i++) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      Path fileName = new Path(oldLogDir, fakeMachineName + "." + (now - i));<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      fs.createNewFile(fileName);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      // Case 4: put 3 WALs in ZK indicating that they are scheduled for replication so these<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      // files would pass TimeToLiveLogCleaner but would be rejected by ReplicationLogCleaner<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      if (i % (30 / 3) == 1) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        queueStorage.addWAL(server.getServerName(), fakeMachineName, fileName.getName());<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        LOG.info("Replication log file: " + fileName);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>    // Case 5: 5 Procedure WALs that are new, will stay<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    for (int i = 6; i &lt; 11; i++) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      Path fileName = new Path(oldProcedureWALDir, String.format("pv2-%020d.log", i));<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      fs.createNewFile(fileName);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>    // Sleep for sometime to get newer modification time<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    Thread.sleep(ttlWAL);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    fs.createNewFile(new Path(oldLogDir, fakeMachineName + "." + now));<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    // Case 6: 1 newer WAL, not even deletable for TimeToLiveLogCleaner,<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    // so we are not going down the chain<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    fs.createNewFile(new Path(oldLogDir, fakeMachineName + "." + (now + ttlWAL)));<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>    for (FileStatus stat : fs.listStatus(oldLogDir)) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      LOG.info(stat.getPath().toString());<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // There should be 34 files and masterProcedureWALs directory<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    assertEquals(35, fs.listStatus(oldLogDir).length);<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    // 10 procedure WALs<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    assertEquals(10, fs.listStatus(oldProcedureWALDir).length);<a name="line.181"></a>
+<span class="sourceLineNo">089</span>  private static final Path OLD_PROCEDURE_WALS_DIR =<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      new Path(OLD_WALS_DIR, "masterProcedureWALs");<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private static Configuration conf;<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  @BeforeClass<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static void setUpBeforeClass() throws Exception {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    TEST_UTIL.startMiniZKCluster();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    TEST_UTIL.startMiniDFSCluster(1);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    CleanerChore.initChorePool(TEST_UTIL.getConfiguration());<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  @AfterClass<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  public static void tearDownAfterClass() throws Exception {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    TEST_UTIL.shutdownMiniZKCluster();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    TEST_UTIL.shutdownMiniDFSCluster();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  @Before<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  public void beforeTest() throws IOException {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    conf = TEST_UTIL.getConfiguration();<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>    FileSystem fs = TEST_UTIL.getDFSCluster().getFileSystem();<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>    fs.delete(OLD_WALS_DIR, true);<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    // root directory<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    fs.mkdirs(OLD_WALS_DIR);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * This tests verifies LogCleaner works correctly with WALs and Procedure WALs located<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   * in the same oldWALs directory.<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * Created files:<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * - 2 invalid files<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * - 5 old Procedure WALs<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * - 30 old WALs from which 3 are in replication<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * - 5 recent Procedure WALs<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * - 1 recent WAL<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * - 1 very new WAL (timestamp in future)<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * - masterProcedureWALs subdirectory<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   * Files which should stay:<a name="line.130"></a>
+<span class="sourceLineNo">131</span>   * - 3 replication WALs<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * - 2 new WALs<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * - 5 latest Procedure WALs<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   * - masterProcedureWALs subdirectory<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   */<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  @Test<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public void testLogCleaning() throws Exception {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    // set TTLs<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    long ttlWAL = 2000;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    long ttlProcedureWAL = 4000;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    conf.setLong("hbase.master.logcleaner.ttl", ttlWAL);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    conf.setLong("hbase.master.procedurewalcleaner.ttl", ttlProcedureWAL);<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>    HMaster.decorateMasterConfiguration(conf);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    Server server = new DummyServer();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    ReplicationQueueStorage queueStorage =<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        ReplicationStorageFactory.getReplicationQueueStorage(server.getZooKeeper(), conf);<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>    String fakeMachineName = URLEncoder.encode(<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        server.getServerName().toString(), StandardCharsets.UTF_8.name());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    final FileSystem fs = FileSystem.get(conf);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    fs.mkdirs(OLD_PROCEDURE_WALS_DIR);<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    final long now = System.currentTimeMillis();<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    // Case 1: 2 invalid files, which would be deleted directly<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    fs.createNewFile(new Path(OLD_WALS_DIR, "a"));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    fs.createNewFile(new Path(OLD_WALS_DIR, fakeMachineName + "." + "a"));<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>    // Case 2: 5 Procedure WALs that are old which would be deleted<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    for (int i = 1; i &lt;= 5; i++) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      final Path fileName =<a name="line.163"></a>
+<span class="sourceLineNo">164</span>          new Path(OLD_PROCEDURE_WALS_DIR, String.format("pv2-%020d.log", i));<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      fs.createNewFile(fileName);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    // Sleep for sometime to get old procedure WALs<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    Thread.sleep(ttlProcedureWAL - ttlWAL);<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>    // Case 3: old WALs which would be deletable<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    for (int i = 1; i &lt;= 30; i++) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      Path fileName = new Path(OLD_WALS_DIR, fakeMachineName + "." + (now - i));<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      fs.createNewFile(fileName);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      // Case 4: put 3 WALs in ZK indicating that they are scheduled for replication so these<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      // files would pass TimeToLiveLogCleaner but would be rejected by ReplicationLogCleaner<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      if (i % (30 / 3) == 0) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        queueStorage.addWAL(server.getServerName(), fakeMachineName, fileName.getName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        LOG.info("Replication log file: " + fileName);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    LogCleaner cleaner = new LogCleaner(1000, server, conf, fs, oldLogDir);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    cleaner.chore();<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>    // In oldWALs we end up with the current WAL, a newer WAL, the 3 old WALs which<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    // are scheduled for replication and masterProcedureWALs directory<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    TEST_UTIL.waitFor(1000,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        (Waiter.Predicate&lt;Exception&gt;) () -&gt; 6 == fs.listStatus(oldLogDir).length);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    // In masterProcedureWALs we end up with 5 newer Procedure WALs<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    TEST_UTIL.waitFor(1000,<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        (Waiter.Predicate&lt;Exception&gt;) () -&gt; 5 == fs.listStatus(oldProcedureWALDir).length);<a name="line.192"></a>
+<span class="sourceLineNo">183</span>    // Case 5: 5 Procedure WALs that are new, will stay<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    for (int i = 6; i &lt;= 10; i++) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      Path fileName =<a name="line.185"></a>
+<span class="sourceLineNo">186</span>          new Path(OLD_PROCEDURE_WALS_DIR, String.format("pv2-%020d.log", i));<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      fs.createNewFile(fileName);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    }<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>    // Sleep for sometime to get newer modification time<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    Thread.sleep(ttlWAL);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    fs.createNewFile(new Path(OLD_WALS_DIR, fakeMachineName + "." + now));<a name="line.192"></a>
 <span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>    for (FileStatus file : fs.listStatus(oldLogDir)) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      LOG.debug("Kept log file in oldWALs: " + file.getPath().getName());<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    for (FileStatus file : fs.listStatus(oldProcedureWALDir)) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      LOG.debug("Kept log file in masterProcedureWALs: " + file.getPath().getName());<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  }<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  @Test(timeout=10000)<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  public void testZooKeeperAbortDuringGetListOfReplicators() throws Exception {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    Configuration conf = TEST_UTIL.getConfiguration();<a name="line.204"></a>
+<span class="sourceLineNo">194</span>    // Case 6: 1 newer WAL, not even deletable for TimeToLiveLogCleaner,<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    // so we are not going down the chain<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    fs.createNewFile(new Path(OLD_WALS_DIR, fakeMachineName + "." + (now + ttlWAL)));<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>    FileStatus[] status = fs.listStatus(OLD_WALS_DIR);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    LOG.info("File status: {}", Arrays.toString(status));<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>    // There should be 34 files and 1 masterProcedureWALs directory<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    assertEquals(35, fs.listStatus(OLD_WALS_DIR).length);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    // 10 procedure WALs<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    assertEquals(10, fs.listStatus(OLD_PROCEDURE_WALS_DIR).length);<a name="line.204"></a>
 <span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>    ReplicationLogCleaner cleaner = new ReplicationLogCleaner();<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    List&lt;FileStatus&gt; dummyFiles = Lists.newArrayList(<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        new FileStatus(100, false, 3, 100, System.currentTimeMillis(), new Path("log1")),<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        new FileStatus(100, false, 3, 100, System.currentTimeMillis(), new Path("log2"))<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    );<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span>    FaultyZooKeeperWatcher faultyZK =<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        new FaultyZooKeeperWatcher(conf, "testZooKeeperAbort-faulty", null);<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    final AtomicBoolean getListOfReplicatorsFailed = new AtomicBoolean(false);<a name="line.215"></a>
+<span class="sourceLineNo">206</span>    LogCleaner cleaner = new LogCleaner(1000, server, conf, fs, OLD_WALS_DIR);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    cleaner.chore();<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>    // In oldWALs we end up with the current WAL, a newer WAL, the 3 old WALs which<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // are scheduled for replication and masterProcedureWALs directory<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    TEST_UTIL.waitFor(1000, (Waiter.Predicate&lt;Exception&gt;) () -&gt; 6 == fs<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        .listStatus(OLD_WALS_DIR).length);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    // In masterProcedureWALs we end up with 5 newer Procedure WALs<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    TEST_UTIL.waitFor(1000, (Waiter.Predicate&lt;Exception&gt;) () -&gt; 5 == fs<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        .listStatus(OLD_PROCEDURE_WALS_DIR).length);<a name="line.215"></a>
 <span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>    try {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      faultyZK.init();<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      ReplicationQueueStorage queueStorage = spy(ReplicationStorageFactory<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          .getReplicationQueueStorage(faultyZK, conf));<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      doAnswer(new Answer&lt;Object&gt;() {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        @Override<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        public Object answer(InvocationOnMock invocation) throws Throwable {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>          try {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>            return invocation.callRealMethod();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>          } catch (ReplicationException e) {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>            LOG.debug("caught " + e);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            getListOfReplicatorsFailed.set(true);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            throw e;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      }).when(queueStorage).getAllWALs();<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>      cleaner.setConf(conf, faultyZK, queueStorage);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      // should keep all files due to a ConnectionLossException getting the queues znodes<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      cleaner.preClean();<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      Iterable&lt;FileStatus&gt; toDelete = cleaner.getDeletableFiles(dummyFiles);<a name="line.237"></a>
+<span class="sourceLineNo">217</span>    if (LOG.isDebugEnabled()) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      FileStatus[] statusOldWALs = fs.listStatus(OLD_WALS_DIR);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      FileStatus[] statusProcedureWALs = fs.listStatus(OLD_PROCEDURE_WALS_DIR);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      LOG.debug("Kept log file for oldWALs: {}", Arrays.toString(statusOldWALs));<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      LOG.debug("Kept log file for masterProcedureWALs: {}",<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          Arrays.toString(statusProcedureWALs));<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  @Test(timeout=10000)<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  public void testZooKeeperAbortDuringGetListOfReplicators() throws Exception {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    ReplicationLogCleaner cleaner = new ReplicationLogCleaner();<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    List&lt;FileStatus&gt; dummyFiles = Arrays.asList(<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        new FileStatus(100, false, 3, 100, System.currentTimeMillis(), new Path("log1")),<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        new FileStatus(100, false, 3, 100, System.currentTimeMillis(), new Path("log2"))<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    );<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>    FaultyZooKeeperWatcher faultyZK =<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        new FaultyZooKeeperWatcher(conf, "testZooKeeperAbort-faulty", null);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    final AtomicBoolean getListOfReplicatorsFailed = new AtomicBoolean(false);<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>      assertTrue(getListOfReplicatorsFailed.get());<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      assertFalse(toDelete.iterator().hasNext());<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      assertFalse(cleaner.isStopped());<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    } finally {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      faultyZK.close();<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  }<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  /**<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   * When zk is working both files should be returned<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * @throws Exception from ZK watcher<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   */<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  @Test(timeout=10000)<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  public void testZooKeeperNormal() throws Exception {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    Configuration conf = TEST_UTIL.getConfiguration();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    ReplicationLogCleaner cleaner = new ReplicationLogCleaner();<a name="line.254"></a>
+<span class="sourceLineNo">239</span>    try {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      faultyZK.init();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      ReplicationQueueStorage queueStorage = spy(ReplicationStorageFactory<a name="line.241"></a>
+<span class="sourceLineNo">242</span>          .getReplicationQueueStorage(faultyZK, conf));<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      doAnswer(new Answer&lt;Object&gt;() {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        @Override<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        public Object answer(InvocationOnMock invocation) throws Throwable {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>          try {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>            return invocation.callRealMethod();<a name="line.247"></a>
+<span class="sourceLineNo">248</span>          } catch (ReplicationException e) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>            LOG.debug("Caught Exception", e);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>            getListOfReplicatorsFailed.set(true);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>            throw e;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>          }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      }).when(queueStorage).getAllWALs();<a name="line.254"></a>
 <span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    List&lt;FileStatus&gt; dummyFiles = Lists.newArrayList(<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        new FileStatus(100, false, 3, 100, System.currentTimeMillis(), new Path("log1")),<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        new FileStatus(100, false, 3, 100, System.currentTimeMillis(), new Path("log2"))<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    );<a name="line.259"></a>
+<span class="sourceLineNo">256</span>      cleaner.setConf(conf, faultyZK, queueStorage);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      // should keep all files due to a ConnectionLossException getting the queues znodes<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      cleaner.preClean();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      Iterable&lt;FileStatus&gt; toDelete = cleaner.getDeletableFiles(dummyFiles);<a name="line.259"></a>
 <span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>    ZKWatcher zkw = new ZKWatcher(conf, "testZooKeeperAbort-normal", null);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      cleaner.setConf(conf, zkw);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      cleaner.preClean();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      Iterable&lt;FileStatus&gt; filesToDelete = cleaner.getDeletableFiles(dummyFiles);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      Iterator&lt;FileStatus&gt; iter = filesToDelete.iterator();<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      assertTrue(iter.hasNext());<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      assertEquals(new Path("log1"), iter.next().getPath());<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      assertTrue(iter.hasNext());<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      assertEquals(new Path("log2"), iter.next().getPath());<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      assertFalse(iter.hasNext());<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    } finally {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      zkw.close();<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    }<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  }<a name="line.275"></a>
+<span class="sourceLineNo">261</span>      assertTrue(getListOfReplicatorsFailed.get());<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      assertFalse(toDelete.iterator().hasNext());<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      assertFalse(cleaner.isStopped());<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    } finally {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      faultyZK.close();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>  /**<a name="line.269"></a>
+<span class="sourceLineNo">270</span>   * When zk is working both files should be returned<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   * @throws Exception from ZK watcher<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   */<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  @Test(timeout=10000)<a name="line.273"></a>
+<span class="sourceLineNo">274</span>  public void testZooKeeperNormal() throws Exception {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    ReplicationLogCleaner cleaner = new ReplicationLogCleaner();<a name="line.275"></a>
 <span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>  @Test<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public void testOnConfigurationChange() throws Exception {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    Configuration conf = TEST_UTIL.getConfiguration();<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    conf.setInt(LogCleaner.OLD_WALS_CLEANER_THREAD_SIZE,<a name="line.280"></a>
-<span class="sourceLineNo">281</span>        LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE);<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    conf.setLong(LogCleaner.OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC);<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    conf.setLong(LogCleaner.OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    // Prepare environments<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    Server server = new DummyServer();<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    Path oldWALsDir = new Path(TEST_UTIL.getDefaultRootDirPath(),<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    FileSystem fs = TEST_UTIL.getDFSCluster().getFileSystem();<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    LogCleaner cleaner = new LogCleaner(3000, server, conf, fs, oldWALsDir);<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    assertEquals(LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE, cleaner.getSizeOfCleaners());<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    assertEquals(LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        cleaner.getCleanerThreadTimeoutMsec());<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    assertEquals(LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC,<a name="line.295"></a>
-<span class="sourceLineNo">296</span>        cleaner.getCleanerThreadCheckIntervalMsec());<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    // Create dir and files for test<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    fs.delete(oldWALsDir, true);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    fs.mkdirs(oldWALsDir);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    int numOfFiles = 10;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    createFiles(fs, oldWALsDir, numOfFiles);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    FileStatus[] status = fs.listStatus(oldWALsDir);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    assertEquals(numOfFiles, status.length);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    // Start cleaner chore<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Thread thread = new Thread(() -&gt; cleaner.chore());<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    thread.setDaemon(true);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    thread.start();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // change size of cleaners dynamically<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    int sizeToChange = 4;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    long threadTimeoutToChange = 30 * 1000L;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    long threadCheckIntervalToChange = 250L;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    conf.setInt(LogCleaner.OLD_WALS_CLEANER_THREAD_SIZE, sizeToChange);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    conf.setLong(LogCleaner.OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC, threadTimeoutToChange);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    conf.setLong(LogCleaner.OLD_WALS_CLEANER_THREAD_CHECK_INTERVAL_MSEC,<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        threadCheckIntervalToChange);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    cleaner.onConfigurationChange(conf);<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    assertEquals(sizeToChange, cleaner.getSizeOfCleaners());<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    assertEquals(threadTimeoutToChange, cleaner.getCleanerThreadTimeoutMsec());<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    assertEquals(threadCheckIntervalToChange, cleaner.getCleanerThreadCheckIntervalMsec());<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    // Stop chore<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    thread.join();<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    status = fs.listStatus(oldWALsDir);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    assertEquals(0, status.length);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  }<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span>  private void createFiles(FileSystem fs, Path parentDir, int numOfFiles) throws IOException {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    Random random = new Random();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    for (int i = 0; i &lt; numOfFiles; i++) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      int xMega = 1 + random.nextInt(3); // size of each file is between 1~3M<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      try (FSDataOutputStream fsdos = fs.create(new Path(parentDir, "file-" + i))) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        for (int m = 0; m &lt; xMega; m++) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>          byte[] M = new byte[1024 * 1024];<a name="line.332"></a>
-<span class="sourceLineNo">333</span>          random.nextBytes(M);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>          fsdos.write(M);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  static class DummyServer implements Server {<a name="line.340"></a>
+<span class="sourceLineNo">277</span>    List&lt;FileStatus&gt; dummyFiles = Arrays.asList(<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        new FileStatus(100, false, 3, 100, System.currentTimeMillis(), new Path("log1")),<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        new FileStatus(100, false, 3, 100, System.currentTimeMillis(), new Path("log2"))<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    );<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>    ZKWatcher zkw = new ZKWatcher(conf, "testZooKeeperAbort-normal", null);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    try {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      cleaner.setConf(conf, zkw);<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      cleaner.preClean();<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      Iterable&lt;FileStatus&gt; filesToDelete = cleaner.getDeletableFiles(dummyFiles);<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      Iterator&lt;FileStatus&gt; iter = filesToDelete.iterator();<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      assertTrue(iter.hasNext());<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      assertEquals(new Path("log1"), iter.next().getPath());<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      assertTrue(iter.hasNext());<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      assertEquals(new Path("log2"), iter.next().getPath());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      assertFalse(iter.hasNext());<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    } finally {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      zkw.close();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span>  @Test<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public void testOnConfigurationChange() throws Exception {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    // Prepare environments<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    Server server = new DummyServer();<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>    FileSystem fs = TEST_UTIL.getDFSCluster().getFileSystem();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    LogCleaner cleaner = new LogCleaner(3000, server, conf, fs, OLD_WALS_DIR);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    assertEquals(LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_SIZE, cleaner.getSizeOfCleaners());<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    assertEquals(LogCleaner.DEFAULT_OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        cleaner.getCleanerThreadTimeoutMsec());<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    // Create dir and files for test<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    int numOfFiles = 10;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    createFiles(fs, OLD_WALS_DIR, numOfFiles);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    FileStatus[] status = fs.listStatus(OLD_WALS_DIR);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    assertEquals(numOfFiles, status.length);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    // Start cleaner chore<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    Thread thread = new Thread(() -&gt; cleaner.chore());<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    thread.setDaemon(true);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    thread.start();<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    // change size of cleaners dynamically<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    int sizeToChange = 4;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    long threadTimeoutToChange = 30 * 1000L;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    conf.setInt(LogCleaner.OLD_WALS_CLEANER_THREAD_SIZE, sizeToChange);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    conf.setLong(LogCleaner.OLD_WALS_CLEANER_THREAD_TIMEOUT_MSEC, threadTimeoutToChange);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    cleaner.onConfigurationChange(conf);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    assertEquals(sizeToChange, cleaner.getSizeOfCleaners());<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    assertEquals(threadTimeoutToChange, cleaner.getCleanerThreadTimeoutMsec());<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    // Stop chore<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    thread.join();<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    status = fs.listStatus(OLD_WALS_DIR);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    assertEquals(0, status.length);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>  private void createFiles(FileSystem fs, Path parentDir, int numOfFiles) throws IOException {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    for (int i = 0; i &lt; numOfFiles; i++) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      // size of each file is 1M, 2M, or 3M<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      int xMega = 1 + ThreadLocalRandom.current().nextInt(1, 4);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      try (FSDataOutputStream fsdos = fs.create(new Path(parentDir, "file-" + i))) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        byte[] M = RandomUtils.nextBytes(Math.toIntExact(FileUtils.ONE_MB * xMega));<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        fsdos.write(M);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
 <span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>    @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    public Configuration getConfiguration() {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      return TEST_UTIL.getConfiguration();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>    @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    public ZKWatcher getZooKeeper() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      try {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        return new ZKWatcher(getConfiguration(), "dummy server", this);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      } catch (IOException e) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>        e.printStackTrace();<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      }<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      return null;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>    @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      return null;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>    @Override<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    public ClusterConnection getConnection() {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      return null;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
-<span class="sourceLineNo">366</span><a name="line.366"></a>
-<span class="sourceLineNo">367</span>    @Override<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    public ServerName getServerName() {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      return ServerName.valueOf("regionserver,60020,000000");<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>    @Override<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    public void abort(String why, Throwable e) {}<a name="line.373"></a>
-<span class="sourceLineNo">374</span><a name="line.374"></a>
-<span class="sourceLineNo">375</span>    @Override<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    public boolean isAborted() {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      return false;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
-<span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>    @Override<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    public void stop(String why) {}<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>    @Override<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    public boolean isStopped() {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      return false;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>    @Override<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    public ChoreService getChoreService() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      return null;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>    @Override<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    public ClusterConnection getClusterConnection() {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      return null;<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    }<a name="line.396"></a>
-<span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span>    @Override<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    public FileSystem getFileSystem() {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      return null;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>    @Override<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    public boolean isStopping() {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      return false;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    }<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>    @Override<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    public Connection createConnection(Configuration conf) throws IOException {<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      return null;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    }<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>  static class FaultyZooKeeperWatcher extends ZKWatcher {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    private RecoverableZooKeeper zk;<a name="line.415"></a>
-<span class="sourceLineNo">416</span><a name="line.416"></a>
-<span class="sourceLineNo">417</span>    public FaultyZooKeeperWatcher(Configuration conf, String identifier, Abortable abortable)<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        throws ZooKeeperConnectionException, IOException {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      super(conf, identifier, abortable);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    }<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>    public void init() throws Exception {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      this.zk = spy(super.getRecoverableZooKeeper());<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      doThrow(new KeeperException.ConnectionLossException())<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        .when(zk).getChildren("/hbase/replication/rs", null);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span><a name="line.427"></a>
-<span class="sourceLineNo">428</span>    @Override<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    public RecoverableZooKeeper getRecoverableZooKeeper() {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      return zk;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    }<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>}<a name="line.433"></a>
+<span class="sourceLineNo">342</span>  static class DummyServer implements Server {<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>    @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    public Configuration getConfiguration() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      return TEST_UTIL.getConfiguration();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>    @Override<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    public ZKWatcher getZooKeeper() {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      try {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        return new ZKWatcher(getConfiguration(), "dummy server", this);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      } catch (IOException e) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        e.printStackTrace();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      }<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      return null;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>    @Override<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      return null;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>    @Override<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    public ClusterConnection getConnection() {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      return null;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>    @Override<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    public ServerName getServerName() {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      return ServerName.valueOf("regionserver,60020,000000");<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    }<a name="line.372"></a>
+<span class="sourceLineNo">373</span><a name="line.373"></a>
+<span class="sourceLineNo">374</span>    @Override<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    public void abort(String why, Throwable e) {}<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>    @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    public boolean isAborted() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      return false;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>    @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    public void stop(String why) {}<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>    @Override<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    public boolean isStopped() {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      return false;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    @Override<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    public ChoreService getChoreService() {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      return null;<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>    @Override<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    public ClusterConnection getClusterConnection() {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      return null;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>    @Override<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    public FileSystem getFileSystem() {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      return null;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>    @Override<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    public boolean isStopping() {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      return false;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>    @Override<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    public Connection createConnection(Configuration conf) throws IOException {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      return null;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>  static class FaultyZooKeeperWatcher extends ZKWatcher {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    private RecoverableZooKeeper zk;<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>    public FaultyZooKeeperWatcher(Configuration conf, String identifier, Abortable abortable)<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        throws ZooKeeperConnectionException, IOException {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      super(conf, identifier, abortable);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>    public void init() throws Exception {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      this.zk = spy(super.getRecoverableZooKeeper());<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      doThrow(new KeeperException.ConnectionLossException())<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        .when(zk).getChildren("/hbase/replication/rs", null);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>    @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    public RecoverableZooKeeper getRecoverableZooKeeper() {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      return zk;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>}<a name="line.435"></a>
 
 
 
index b6665c1..0fe9c05 100644 (file)
 <span class="sourceLineNo">026</span><a name="line.26"></a>
 <span class="sourceLineNo">027</span>import java.io.IOException;<a name="line.27"></a>
 <span class="sourceLineNo">028</span>import java.net.URLEncoder;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.Iterator;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.List;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.Random;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.conf.Configuration;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.fs.FileStatus;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.fs.FileSystem;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.fs.Path;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import