TomcatJAASRealm keeps reference to undeployed EAR/WAR's classloader
-------------------------------------------------------------------

                 Key: GERONIMO-4545
                 URL: https://issues.apache.org/jira/browse/GERONIMO-4545
             Project: Geronimo
          Issue Type: Bug
      Security Level: public (Regular issues)
    Affects Versions: 2.2
            Reporter: Janko Heilgeist


Another issue where an undeployed WAR's classloader is not GCed.

{code}
--> org.apache.geronimo.tomcat.realm.tomcatjaasre...@0x2aaab10ab438 (180 bytes) 
 (field container:) exclude
--> org.apache.geronimo.tomcat.geronimostandardcont...@0x2aaab322d390 (749 
bytes) (field parentClassLoader:) exclude
--> org.apache.geronimo.kernel.config.multiparentclassloa...@0x2aaab2e9b2e0 
(156 bytes) (field parents:) exclude
--> [Ljava.lang.ClassLoader;@0x2aaab0b97958 (88 bytes) (Element 1 of 
[Ljava.lang.ClassLoader;@0x2aaab0b97958:) exclude
--> 
org.apache.geronimo.kernel.config.childrenconfigurationclassloa...@0x2aaab05e8bc0
 (115 bytes) (field parent:) exclude
--> org.apache.geronimo.kernel.config.multiparentclassloa...@0x2aaab2e9b230 
(156 bytes) exclude 
{code}

It looks to me like the TomcatJAASRealm (its name is "DefaultJAASRealm") is a 
standard realm that is used by all WARs without explicit configuration. Setting 
the realm of a GeronimoStandardContext makes the context store a reference to 
its realm AND makes the realm store a reference to the context (see 
org.apache.catalina.core.ContainerBase#setRealm() which GeronimoStandardContext 
inherits). Thus, the default realm's reference is always directed to the 
context of the WAR deployed most recently. This reference keeps the context 
from being GCed even if the corresponding WAR has been undeployed in the 
meantime.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to