ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Archie Cobbs (JIRA)" <j...@apache.org>
Subject [jira] Created: (IVY-791) Memory leak in ModuleRevisionId.java
Date Fri, 04 Apr 2008 18:47:24 GMT
Memory leak in ModuleRevisionId.java
------------------------------------

                 Key: IVY-791
                 URL: https://issues.apache.org/jira/browse/IVY-791
             Project: Ivy
          Issue Type: Bug
          Components: Core
    Affects Versions: 2.0.0-beta-2
            Reporter: Archie Cobbs


In ModuleRevisionId.java an attempt is made to create a "canconical instance" cache like {{String.intern()}}
using this static field:

{noformat}
private static final Map/*<ModuleRevisionId, ModuleRevisionId>*/ CACHE = new WeakHashMap();
{noformat}
This doesn't work: each entry is both a key and a value, so the strong reference to the key
will never allow the weak reference to the value to be the only remaining reference, and so
entries will never be dropped.

You have to wrap the keys in a WeakReference.

See [Classpath's implementation of String.intern()|http://cvs.savannah.gnu.org/viewvc/classpath/vm/reference/java/lang/VMString.java?root=classpath&view=markup]
for an example.



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


Mime
View raw message