[jboss-dev-forums] [Design the new POJO MicroContainer] - Re: Composite Map key and weak reference

alesj do-not-reply at jboss.com
Wed May 21 09:36:22 EDT 2008


"bstansberry at jboss.com" wrote : Oh, but my class above is intended to be passed as a key to WeakHashMap.  The ReferenceQueue polling will remove the only strong ref to the Key, at which point the WeakHashMap will do its normal thing and make the Key/value pair eligible for removal.
Hmmm ... trying to put your code into real life showed some issues.

The way you do your refQueue is wrong. :-)
And I don't see how you can do it right.

Since what you have to pass into WeakReference as Queue instance is the initial queue of actual type of your WeakReference - the type that's gonna be GCed - in our case the Class ref.

But in that case we cannot do this

  |  private void cleanKeyRefs()
  |    {
  |       Reference ref = null;
  |       while ((ref = refQueue.poll()) != null)
  |       {
  |          ((KeyRef) ref).key = null;
  |       }      
  |    }
  | 

I'll try to do WeakCompositeKeyMap, doing something similar as what we do in WeakValueHashMap.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4152343#4152343

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4152343



More information about the jboss-dev-forums mailing list