Repository: hadoop Updated Branches: refs/heads/trunk f6452eb25 -> 9cdaec6a6
HADOOP-11355. When accessing data in HDFS and the key has been deleted, a Null Pointer Exception is shown. Contributed by Arun Suresh. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/9cdaec6a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/9cdaec6a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/9cdaec6a Branch: refs/heads/trunk Commit: 9cdaec6a6f6cb1680ad6e44d7b0c8d70cdcbe3fa Parents: f6452eb Author: Andrew Wang <[email protected]> Authored: Fri Dec 5 12:01:23 2014 -0800 Committer: Andrew Wang <[email protected]> Committed: Fri Dec 5 12:01:23 2014 -0800 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../crypto/key/kms/server/KeyAuthorizationKeyProvider.java | 4 ++++ .../org/apache/hadoop/crypto/key/kms/server/TestKMS.java | 8 ++++++++ 3 files changed, 15 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/9cdaec6a/hadoop-common-project/hadoop-common/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 2f88fc8..7a6a938 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -505,6 +505,9 @@ Release 2.7.0 - UNRELEASED HADOOP-11348. Remove unused variable from CMake error message for finding openssl (Dian Fu via Colin P. McCabe) + HADOOP-11355. When accessing data in HDFS and the key has been deleted, + a Null Pointer Exception is shown. (Arun Suresh via wang) + Release 2.6.0 - 2014-11-18 INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/9cdaec6a/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KeyAuthorizationKeyProvider.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KeyAuthorizationKeyProvider.java b/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KeyAuthorizationKeyProvider.java index 4ce9611..074f1fb 100644 --- a/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KeyAuthorizationKeyProvider.java +++ b/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KeyAuthorizationKeyProvider.java @@ -240,6 +240,10 @@ public class KeyAuthorizationKeyProvider extends KeyProviderCryptoExtension { String kn = ekv.getEncryptionKeyName(); String kvn = ekv.getEncryptionKeyVersionName(); KeyVersion kv = provider.getKeyVersion(kvn); + if (kv == null) { + throw new IllegalArgumentException(String.format( + "'%s' not found", kvn)); + } if (!kv.getName().equals(kn)) { throw new IllegalArgumentException(String.format( "KeyVersion '%s' does not belong to the key '%s'", kvn, kn)); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9cdaec6a/hadoop-common-project/hadoop-kms/src/test/java/org/apache/hadoop/crypto/key/kms/server/TestKMS.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-kms/src/test/java/org/apache/hadoop/crypto/key/kms/server/TestKMS.java b/hadoop-common-project/hadoop-kms/src/test/java/org/apache/hadoop/crypto/key/kms/server/TestKMS.java index b9409ca..61ce807 100644 --- a/hadoop-common-project/hadoop-kms/src/test/java/org/apache/hadoop/crypto/key/kms/server/TestKMS.java +++ b/hadoop-common-project/hadoop-kms/src/test/java/org/apache/hadoop/crypto/key/kms/server/TestKMS.java @@ -498,6 +498,14 @@ public class TestKMS { // deleteKey() kp.deleteKey("k1"); + // Check decryption after Key deletion + try { + kpExt.decryptEncryptedKey(ek1); + Assert.fail("Should not be allowed !!"); + } catch (Exception e) { + Assert.assertTrue(e.getMessage().contains("'k1@1' not found")); + } + // getKey() Assert.assertNull(kp.getKeyVersion("k1"));
