Author: kihwal
Date: Mon May 13 22:06:55 2013
New Revision: 1482122

URL: http://svn.apache.org/r1482122
Log:
svn merge -c 1482121. Merging from trunk to branch-2 to fix HDFS-4805.

Modified:
    
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DelegationTokenRenewer.java

Modified: 
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DelegationTokenRenewer.java
URL: 
http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DelegationTokenRenewer.java?rev=1482122&r1=1482121&r2=1482122&view=diff
==============================================================================
--- 
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DelegationTokenRenewer.java
 (original)
+++ 
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DelegationTokenRenewer.java
 Mon May 13 22:06:55 2013
@@ -55,13 +55,14 @@ public class DelegationTokenRenewer
    * An action that will renew and replace the file system's delegation 
    * tokens automatically.
    */
-  private static class RenewAction<T extends FileSystem & Renewable>
+  public static class RenewAction<T extends FileSystem & Renewable>
       implements Delayed {
     /** when should the renew happen */
     private long renewalTime;
     /** a weak reference to the file system so that it can be garbage 
collected */
     private final WeakReference<T> weakFs;
     private Token<?> token; 
+    boolean isValid = true;
 
     private RenewAction(final T fs) {
       this.weakFs = new WeakReference<T>(fs);
@@ -69,6 +70,10 @@ public class DelegationTokenRenewer
       updateRenewalTime(renewCycle);
     }
  
+    public boolean isValid() {
+      return isValid;
+    }
+    
     /** Get the delay until this event should happen. */
     @Override
     public long getDelay(final TimeUnit unit) {
@@ -132,6 +137,7 @@ public class DelegationTokenRenewer
               updateRenewalTime(renewCycle);
               fs.setDelegationToken(token);
             } catch (IOException ie2) {
+              isValid = false;
               throw new IOException("Can't renew or get new delegation token 
", ie);
             }
           }
@@ -160,7 +166,8 @@ public class DelegationTokenRenewer
   private static final long RENEW_CYCLE = 24 * 60 * 60 * 1000; 
 
   @InterfaceAudience.Private
-  protected static long renewCycle = RENEW_CYCLE;
+  @VisibleForTesting
+  public static long renewCycle = RENEW_CYCLE;
 
   /** Queue to maintain the RenewActions to be processed by the {@link #run()} 
*/
   private volatile DelayQueue<RenewAction<?>> queue = new 
DelayQueue<RenewAction<?>>();
@@ -206,7 +213,7 @@ public class DelegationTokenRenewer
   
   /** Add a renew action to the queue. */
   @SuppressWarnings("static-access")
-  public <T extends FileSystem & Renewable> void addRenewAction(final T fs) {
+  public <T extends FileSystem & Renewable> RenewAction<T> 
addRenewAction(final T fs) {
     synchronized (this) {
       if (!isAlive()) {
         start();
@@ -218,6 +225,7 @@ public class DelegationTokenRenewer
     } else {
       fs.LOG.error("does not have a token for renewal");
     }
+    return action;
   }
 
   /**


Reply via email to