From 14047243f883ddd4fdb566b7be9e5d2dbafeaf72 Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Tue, 4 Sep 2012 13:18:32 +0000 Subject: QPID-4271: improve behaviour when embedding the broker inside a container Avoid potential ThreadLocal leaks on Container owned threads for CurrentActor, AMQShortString and SecurityManager. Have LogRecorder unregistered itself from Log4J. Allow SIGHUP handling to be turned off (inappropiate to install signal handling when deployed inside Container. Allow use of custom RMI socket factory to be disabled. (The registration of a custom RMI socket with the JRE cannot be reversed (deficiency in JRE API) and this causes a large perm-gen leak). Work of Robbie Gemmell and myself. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1380625 13f79535-47bb-0310-9956-ffa450edef68 --- .../server/management/plugin/servlet/rest/AbstractServlet.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'qpid/java/broker-plugins/management-http/src') diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java index 843ba9816a..521ad69abe 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java @@ -36,6 +36,7 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Logger; +import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.logging.LogActor; import org.apache.qpid.server.logging.RootMessageLogger; import org.apache.qpid.server.logging.actors.CurrentActor; @@ -218,7 +219,14 @@ public abstract class AbstractServlet extends HttpServlet } finally { - org.apache.qpid.server.security.SecurityManager.setThreadSubject(null); + try + { + org.apache.qpid.server.security.SecurityManager.setThreadSubject(null); + } + finally + { + AMQShortString.clearLocalCache(); + } } } -- cgit v1.2.1