This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/7.0.x by this push:
new cdfe4c7 Better fix for bug 63836
cdfe4c7 is described below
commit cdfe4c7458163bdbfc075506e2130ee7d928da0a
Author: Mark Thomas <[email protected]>
AuthorDate: Mon Oct 28 20:29:00 2019 +0100
Better fix for bug 63836
Ensure ContextConfig does not retain a reference to a Host object once
the Host has been destroyed.
---
java/org/apache/catalina/startup/ContextConfig.java | 15 +++++++++++++++
java/org/apache/tomcat/util/net/NioEndpoint.java | 1 -
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/java/org/apache/catalina/startup/ContextConfig.java
b/java/org/apache/catalina/startup/ContextConfig.java
index 34764d6..91fb5f3 100644
--- a/java/org/apache/catalina/startup/ContextConfig.java
+++ b/java/org/apache/catalina/startup/ContextConfig.java
@@ -1511,6 +1511,9 @@ public class ContextConfig implements LifecycleListener {
entry = new DefaultWebXmlCacheEntry(webXmlDefaultFragment,
globalTimeStamp, hostTimeStamp);
hostWebXmlCache.put(host, entry);
+ // Add a Lifecycle listener to the Host that will remove it
from
+ // the hostWebXmlCache once the Host is destroyed
+ host.addLifecycleListener(new HostWebXmlCacheCleaner());
}
return webXmlDefaultFragment;
@@ -2792,6 +2795,18 @@ public class ContextConfig implements LifecycleListener {
}
}
+ private static class HostWebXmlCacheCleaner implements LifecycleListener {
+
+ @Override
+ public void lifecycleEvent(LifecycleEvent event) {
+
+ if (event.getType() == Lifecycle.AFTER_DESTROY_EVENT) {
+ Host host = (Host) event.getSource();
+ hostWebXmlCache.remove(host);
+ }
+ }
+ }
+
private static class JavaClassCacheEntry {
public final String superclassName;
diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java
b/java/org/apache/tomcat/util/net/NioEndpoint.java
index 0eef5f6..eeeb6b8 100644
--- a/java/org/apache/tomcat/util/net/NioEndpoint.java
+++ b/java/org/apache/tomcat/util/net/NioEndpoint.java
@@ -592,7 +592,6 @@ public class NioEndpoint extends
AbstractEndpoint<NioChannel> {
nioChannels.clear();
processorCache.clear();
shutdownExecutor();
- oomParachuteData = null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]