From a577179ad35d73a406be31117247d7c1ac3ab189 Mon Sep 17 00:00:00 2001 From: chegar Date: Thu, 3 Feb 2011 10:10:11 +0000 Subject: [PATCH] 7008595: Class loader leak caused by keepAliveTimer thread in KeepAliveCache Reviewed-by: michaelm --- src/share/classes/sun/net/www/http/KeepAliveCache.java | 3 +++ src/share/classes/sun/net/www/http/KeepAliveStream.java | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/share/classes/sun/net/www/http/KeepAliveCache.java b/src/share/classes/sun/net/www/http/KeepAliveCache.java index e75e294c1..7c09e3965 100644 --- a/src/share/classes/sun/net/www/http/KeepAliveCache.java +++ b/src/share/classes/sun/net/www/http/KeepAliveCache.java @@ -106,6 +106,9 @@ public class KeepAliveCache keepAliveTimer = new Thread(grp, cache, "Keep-Alive-Timer"); keepAliveTimer.setDaemon(true); keepAliveTimer.setPriority(Thread.MAX_PRIORITY - 2); + // Set the context class loader to null in order to avoid + // keeping a strong reference to an application classloader. + keepAliveTimer.setContextClassLoader(null); keepAliveTimer.start(); return null; } diff --git a/src/share/classes/sun/net/www/http/KeepAliveStream.java b/src/share/classes/sun/net/www/http/KeepAliveStream.java index c430ae351..b3d3b6070 100644 --- a/src/share/classes/sun/net/www/http/KeepAliveStream.java +++ b/src/share/classes/sun/net/www/http/KeepAliveStream.java @@ -185,6 +185,9 @@ class KeepAliveStream extends MeteredStream implements Hurryable { cleanerThread = new Thread(grp, queue, "Keep-Alive-SocketCleaner"); cleanerThread.setDaemon(true); cleanerThread.setPriority(Thread.MAX_PRIORITY - 2); + // Set the context class loader to null in order to avoid + // keeping a strong reference to an application classloader. + cleanerThread.setContextClassLoader(null); cleanerThread.start(); return null; } -- GitLab