On Mon, 2003-02-17 at 04:31, Leo Sutic wrote:
> Berin,
> 
> this sounds like an issue with proxies. The StaticBucketMap should
> be able to handle proxies, as long as the key being put == the
> key being get.
> 
> I'm not that keen on the solution applied - it assumes that a
> component's
> toString() method returns the same value all the time. This may be true
> for
> any sensible component implementation, but:
> 
>  1. It is a hack. toString () returns <className>@<hashCode>,
>     which isn't guaranteed not to lead to collisions.
> 
>  2. The requirement on toString() isn't specified anywhere.
> 
> I'd say we should go fix the "root bug" here. I'm grabbing the
> current Fortress CVS, it shouldn't be too hard to duplicate the
> bug...
> 
> /LS

If toString() will cause collisions then this won't work correctly.  The
other day I was just looking for anything that would at least
temporarily fix the problem.

One thing you might want to know is that I did try changing it from a
StaticBucketMap to a normal Hashtable and still had the same issue.  So
apparently, the key that's being put is NOT the key that is being "get"
even though the toString() returns the same value.  This is rather
troubling since in this bit of code, all I do is get the component from
the service manager, call some methods and store it in a Hashtable. 
Then later I retrieve it and release it.  Why would it be different?  If
it's not equal, then how else can can I release this component?

I agree that the "root bug" needs fixed, but I'm not certain that
storing the component itself is the solution.  Perhaps there is some
other way to create a unique identifier?

-- 
  jaaron    <[EMAIL PROTECTED]>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to