Finding Leaked ClassLoaders with Dominators

Jevgeni Kabanov

Slides from the talk [pptx]

Abstract: ClassLoaders are used in Java to abstract classes from their sources and isolate application parts. My hypothesis (supported by personal experience and anecdotal evidence) is that in almost all Java enterprise application the classloaders will be leaked when the application is redeployed. This is due to the fact that the classloaders are not used the way they were intended and the whole burden of making sure they don't leak lies on the developers, who are commonly not aware of classloaders to the extent necessary to prevent the leaks. In order to support this hypotheses I decided to build a tool that can analyze a Java heap dump and find the leaked classloaders. I will present the tool, the leak detection algorithm and a review of efficient calculation of dominance necessary to detect those leaked classloaders.

Main references:

Varmo Vene
Last update 19 March 2010