HADOOP-11815. HttpServer2 should destroy SignerSecretProvider when it stops. Contributed by Rohith.

This commit is contained in:
Haohui Mai 2015-04-09 10:58:12 -07:00
parent 1885141e90
commit 63c659ddd0
2 changed files with 8 additions and 2 deletions

View File

@ -1222,7 +1222,10 @@ Release 2.7.0 - UNRELEASED
HADOOP-11796. Skip TestShellBasedIdMapping.testStaticMapUpdate on Windows.
(Xiaoyu Yao via cnauroth)
HADOOP-11815. HttpServer2 should destroy SignerSecretProvider when it
stops. (Rohith via wheat9)
Release 2.6.1 - UNRELEASED
INCOMPATIBLE CHANGES

View File

@ -140,6 +140,7 @@ public final class HttpServer2 implements FilterContainer {
protected final List<String> filterNames = new ArrayList<>();
static final String STATE_DESCRIPTION_ALIVE = " - alive";
static final String STATE_DESCRIPTION_NOT_LIVE = " - not live";
private final SignerSecretProvider secretProvider;
/**
* Class to construct instances of HTTP server with specific options.
@ -335,7 +336,7 @@ private HttpServer2(final Builder b) throws IOException {
this.adminsAcl = b.adminsAcl;
this.webAppContext = createWebAppContext(b.name, b.conf, adminsAcl, appDir);
try {
SignerSecretProvider secretProvider =
this.secretProvider =
constructSecretProvider(b, webAppContext.getServletContext());
this.webAppContext.getServletContext().setAttribute
(AuthenticationFilter.SIGNER_SECRET_PROVIDER_ATTRIBUTE,
@ -913,6 +914,8 @@ public void stop() throws Exception {
}
try {
// explicitly destroy the secrete provider
secretProvider.destroy();
// clear & stop webAppContext attributes to avoid memory leaks.
webAppContext.clearAttributes();
webAppContext.stop();