You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nutch.apache.org by "Jerome Charron (JIRA)" <ji...@apache.org> on 2006/05/04 10:31:21 UTC
[jira] Commented: (NUTCH-263) MapWritable.equals() doesn't work
properly
[ http://issues.apache.org/jira/browse/NUTCH-263?page=comments#action_12377749 ]
Jerome Charron commented on NUTCH-263:
--------------------------------------
Andrzej, a small but efficient improvement could be to check the maps sizes prior to any other tests:
if (obj instanceof MapWritable) {
MapWritable map = (MapWritable) obj;
if (map.fSize == fSize) {
...
}
}
return false;
No?
> MapWritable.equals() doesn't work properly
> ------------------------------------------
>
> Key: NUTCH-263
> URL: http://issues.apache.org/jira/browse/NUTCH-263
> Project: Nutch
> Type: Bug
> Versions: 0.8-dev
> Reporter: Andrzej Bialecki
> Attachments: patch1.txt
>
> MapWritable.equals() is sensitive to the order in which map entries have been created. E.g. this fails but it should succeed:
> MapWritable map1 = new MapWritable();
> MapWritable map2 = new MapWritable();
> map1.put(new UTF8("key1"), new UTF8("val1"));
> map1.put(new UTF8("key2"), new UTF8("val2"));
> map2.put(new UTF8("key2"), new UTF8("val2"));
> map2.put(new UTF8("key1"), new UTF8("val1"));
> assertTrue(map1.equals(map2));
> Users expect that this should not be the case, i.e. this class should follow the same rules as Map.equals() ("Returns true if the given object is also a map and the two Maps represent the same mappings").
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira