HADOOP-13847. KMSWebApp should close KeyProviderCryptoExtension. Contributed by John Zhuge.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/291df5c7 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/291df5c7 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/291df5c7 Branch: refs/heads/HADOOP-13345 Commit: 291df5c7fb713d5442ee29eb3f272127afb05a3c Parents: c51bfd2 Author: Xiao Chen <[email protected]> Authored: Mon Dec 5 09:34:39 2016 -0800 Committer: Xiao Chen <[email protected]> Committed: Mon Dec 5 09:35:17 2016 -0800 ---------------------------------------------------------------------- .../apache/hadoop/crypto/key/KeyProviderCryptoExtension.java | 5 +++-- .../org/apache/hadoop/crypto/key/kms/server/KMSWebApp.java | 7 ++++++- 2 files changed, 9 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/291df5c7/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/KeyProviderCryptoExtension.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/KeyProviderCryptoExtension.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/KeyProviderCryptoExtension.java index 1ecd9f6..0543222 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/KeyProviderCryptoExtension.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/KeyProviderCryptoExtension.java @@ -427,8 +427,9 @@ public class KeyProviderCryptoExtension extends @Override public void close() throws IOException { - if (getKeyProvider() != null) { - getKeyProvider().close(); + KeyProvider provider = getKeyProvider(); + if (provider != null && provider != this) { + provider.close(); } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/291df5c7/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSWebApp.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSWebApp.java b/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSWebApp.java index cd773dd..40ae19f 100644 --- a/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSWebApp.java +++ b/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSWebApp.java @@ -40,9 +40,9 @@ import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.io.File; +import java.io.IOException; import java.net.URI; import java.net.URL; -import java.util.List; @InterfaceAudience.Private public class KMSWebApp implements ServletContextListener { @@ -215,6 +215,11 @@ public class KMSWebApp implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent sce) { + try { + keyProviderCryptoExtension.close(); + } catch (IOException ioe) { + LOG.error("Error closing KeyProviderCryptoExtension", ioe); + } kmsAudit.shutdown(); kmsAcls.stopReloader(); jmxReporter.stop(); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
