leosutic 2003/02/18 00:52:44 Modified: fortress/src/java/org/apache/avalon/fortress/impl/lookup FortressServiceManager.java Log: Patch to cover for a bug in StaticBucketMap. The bug is filed as http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17139 please see that URL for a description. The basic idea is to ensure that comparison with equals() among the lookup keys work. Revision Changes Path 1.5 +24 -3 avalon-excalibur/fortress/src/java/org/apache/avalon/fortress/impl/lookup/FortressServiceManager.java Index: FortressServiceManager.java =================================================================== RCS file: /home/cvs/avalon-excalibur/fortress/src/java/org/apache/avalon/fortress/impl/lookup/FortressServiceManager.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- FortressServiceManager.java 15 Feb 2003 17:34:16 -0000 1.4 +++ FortressServiceManager.java 18 Feb 2003 08:52:44 -0000 1.5 @@ -131,7 +131,8 @@ { final ComponentHandler handler = (ComponentHandler)result; final Object component = handler.get(); - m_used.put( component.toString(), handler ); + + m_used.put( new ComponentKey(component), handler ); return component; } catch( final ServiceException ce ) @@ -162,7 +163,7 @@ public void release( final Object component ) { - final ComponentHandler handler = (ComponentHandler)m_used.remove( component.toString() ); + final ComponentHandler handler = (ComponentHandler)m_used.remove( new ComponentKey(component) ); if( null == handler ) { if( null == m_parent ) @@ -216,5 +217,25 @@ { public String role; public String hint; + } + + private final static class ComponentKey + { + private final Object component; + + public ComponentKey( Object component ) + { + this.component = component; + } + + public boolean equals( Object other ) + { + return (other instanceof ComponentKey) && ((ComponentKey) other).component == this.component; + } + + public int hashCode() + { + return component.hashCode(); + } } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]