[ https://jira.codehaus.org/browse/MNG-5205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=306624#comment-306624 ]
Kristian Rosenvold commented on MNG-5205: ----------------------------------------- The code in question is an extreme hotspot in maven, but the caching in question could probably be made a lot smarter (and more technically correct to avoid the leak). There is a duplication in the codebase, this class exists both a deprecated and a non-deprecated version. At a minimum, it seems like it'd make sense to cache class->field mapping at the level isQualifiedForInterpolation(field, method), simply because it would speed things up quite noticeably. I'm studying the overall context of this algorithm to see if there's any higher-level simplifications to be made. > Memory leak in StringSearchModelInterpolator > -------------------------------------------- > > Key: MNG-5205 > URL: https://jira.codehaus.org/browse/MNG-5205 > Project: Maven 2 & 3 > Issue Type: Bug > Components: Inheritance and Interpolation > Affects Versions: 3.0.3 > Reporter: Jesse Glick > Priority: Minor > Fix For: 3.0.5 > > Attachments: x.diff > > > {{StringSearchModelInterpolator}} abuses {{WeakHashMap}}; the {{Field}} > values of {{fieldsByClass}} hold hard references to the {{Class}} keys, > making it useless. Thus if you passed any {{Class}} to it, that class and its > {{ClassLoader}} and the transitive static graph therefrom would never be > collectible. > Anyway a cache is unnecessary, since {{Class}} does its own caching of fields! > Also removing the ill-conceived {{fieldIsPrimitiveByClass}} - not a memory > leak, but likely unnecessary complication. > The class is deprecated anyway, but just in case it is used by someone it > should be fixed. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira