Have you seen this note in the javadoc for java.lang.Map:

Note: great care must be exercised if mutable objects are used as map keys. 
The behavior of a map is not specified if the value of an object is changed 
in a manner that affects equals comparisons while the object is a key in the 
map. A special case of this prohibition is that it is not permissible for a 
map to contain itself as a key. While it is permissible for a map to contain 
itself as a value, extreme caution is advised: the equals and hashCode 
methods are no longer well defined on such a map.
http://download.oracle.com/javase/6/docs/api/java/util/Map.html

Instead of using a Map directly, maybe you should use an wrapper object that 
implements equals() and hashCode() independently of the content of the Map.
Or, instead of using the Map itself as the key, use a "sentinel" object 
(e.g. public static final Object THIS_MAP = new Object(); )

(that being said, I'm having a hard time figuring out what could represent a 
Map that contains itself as a *key*)

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to