[ 
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

        

Reply via email to