harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jimmy, Jing Lv (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-5788) [classlib][util] TreeMap.entrySet().contains() returns true for entries with null value
Date Fri, 25 Apr 2008 08:23:55 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-5788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12592304#action_12592304
] 

Jimmy, Jing Lv commented on HARMONY-5788:
-----------------------------------------

Hi Mark,
     I believe this is a bug in this line 1206 : 
                     if (object instanceof Map.Entry) {
                         Map.Entry<K, V> entry = (Map.Entry<K, V>) object;
                         Object v1 = TreeMap.this.get(entry.getKey()), v2 = entry.getValue();
>>                        return v1 == null ? v2 == null : v1.equals(v2);
     this "v1" is a entry, not a key, so this line may be correct in Keyset.contains() but
not in this EntrySet.contains()
    As a result this line should be fixed to
                             return v1 == null ? false : v1.equals(v2);

      If no objection, I'll apply this fix.

> [classlib][util] TreeMap.entrySet().contains() returns true for entries with null value
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-5788
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5788
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Mark Hindess
>
> The following code illustrates the problem:
> import java.util.TreeMap;
> public class TestTreeMap {
>     public static void main(String[] args) {
>         TreeMap master = new TreeMap<String, String>();
>         master.put("one", "1");
>         master.put("null", null);
>         TreeMap map = new TreeMap<String, String>();
>         Object[] element = master.entrySet().toArray();
>         for (int i = 0; i < element.length ; i++) {
>             System.out.println("Contains entry " + element[i] + "? == " +
>                                map.entrySet().contains(element[i]));
>         }
>     }
> }
> On harmony, the output is:
>   Contains entry null=null? == true
>   Contains entry one=1? == false
> on the RI, the output is:
>   Contains entry null=null? == false
>   Contains entry one=1? == false

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message