From afb3ef215b1bf4814a066954d0ec34d4c22b4a72 Mon Sep 17 00:00:00 2001 From: bchristi Date: Fri, 7 Oct 2016 12:01:24 -0700 Subject: 8151486: Class.forName causes memory leak Summary: Remove ClassLoader.domains Reviewed-by: coleenp, dholmes, mchung, naoto --- src/share/classes/java/lang/ClassLoader.java | 7 ------- 1 file changed, 7 deletions(-) (limited to 'src/share/classes/java') diff --git a/src/share/classes/java/lang/ClassLoader.java b/src/share/classes/java/lang/ClassLoader.java index 842af56143..2e98092f63 100644 --- a/src/share/classes/java/lang/ClassLoader.java +++ b/src/share/classes/java/lang/ClassLoader.java @@ -255,9 +255,6 @@ public abstract class ClassLoader { new ProtectionDomain(new CodeSource(null, (Certificate[]) null), null, this, null); - // The initiating protection domains for all classes loaded by this loader - private final Set domains; - // Invoked by the VM to record every loaded class with this loader. void addClass(Class c) { classes.addElement(c); @@ -281,14 +278,11 @@ public abstract class ClassLoader { if (ParallelLoaders.isRegistered(this.getClass())) { parallelLockMap = new ConcurrentHashMap<>(); package2certs = new ConcurrentHashMap<>(); - domains = - Collections.synchronizedSet(new HashSet()); assertionLock = new Object(); } else { // no finer-grained lock; lock on the classloader instance parallelLockMap = null; package2certs = new Hashtable<>(); - domains = new HashSet<>(); assertionLock = this; } } @@ -505,7 +499,6 @@ public abstract class ClassLoader { }, new AccessControlContext(new ProtectionDomain[] {pd})); } } - domains.add(pd); } /** -- cgit v1.2.3