瀏覽代碼

HADOOP-10732. Fix locking in credential update. (Ted Yu via omalley)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1611415 13f79535-47bb-0310-9956-ffa450edef68
Owen O'Malley 11 年之前
父節點
當前提交
9aaa714a99

+ 5 - 3
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -158,9 +158,6 @@ Trunk (Unreleased)
 
     HADOOP-10485. Remove dead classes in hadoop-streaming. (wheat9)
 
-    HADOOP-10607. Create API to separate credential/password storage from
-    applications. (Larry McCay via omalley)
-
     HADOOP-10696. Add optional attributes to KeyProvider Options and Metadata. 
     (tucu)
 
@@ -418,6 +415,11 @@ Release 2.6.0 - UNRELEASED
     HADOOP-10839. Add unregisterSource() to MetricsSystem API.
     (Shanyu Zhao via cnauroth)
 
+    HADOOP-10607. Create an API to separate credentials/password storage
+    from applications (Larry McCay via omalley)
+
+    HADOOP-10732. Fix locking in credential update. (Ted Yu via omalley)
+
   OPTIMIZATIONS
 
   BUG FIXES

+ 3 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/alias/JavaKeyStoreProvider.java

@@ -230,6 +230,7 @@ public class JavaKeyStoreProvider extends CredentialProvider {
 
   CredentialEntry innerSetCredential(String alias, char[] material)
       throws IOException {
+    writeLock.lock();
     try {
       keyStore.setKeyEntry(alias, new SecretKeySpec(
           new String(material).getBytes("UTF-8"), "AES"),
@@ -237,6 +238,8 @@ public class JavaKeyStoreProvider extends CredentialProvider {
     } catch (KeyStoreException e) {
       throw new IOException("Can't store credential " + alias + " in " + this,
           e);
+    } finally {
+      writeLock.unlock();
     }
     changed = true;
     return new CredentialEntry(alias, material);