Uploaded image for project: 'Geronimo'
  1. Geronimo
  2. GERONIMO-4545

TomcatJAASRealm keeps reference to undeployed EAR/WAR's classloader

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.2
    • Fix Version/s: 2.1.5, 2.2
    • Component/s: Memory Leaks, security, Tomcat
    • Security Level: public (Regular issues)
    • Labels:
      None

      Description

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

      --> org.apache.geronimo.tomcat.realm.TomcatJAASRealm@0x2aaab10ab438 (180 bytes)  (field container:) exclude
      --> org.apache.geronimo.tomcat.GeronimoStandardContext@0x2aaab322d390 (749 bytes) (field parentClassLoader:) exclude
      --> org.apache.geronimo.kernel.config.MultiParentClassLoader@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.ChildrenConfigurationClassLoader@0x2aaab05e8bc0 (115 bytes) (field parent:) exclude
      --> org.apache.geronimo.kernel.config.MultiParentClassLoader@0x2aaab2e9b230 (156 bytes) exclude 
      

      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.

        Attachments

          Activity

            People

            • Assignee:
              xuhaihong Ivan
              Reporter:
              jkh Janko Heilgeist
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: