Harmony
  1. Harmony
  2. HARMONY-780

[classlib][util] unexpected ClassCastException for java.util.TreeMap.put(Object, new Object)

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Classlib
    • Labels:
      None

      Description

      The Harmony method java.util.TreeMap.put(Object, new Object) throws unexpected ClassCastException while according to spec should return null.

      ====================== test.java ========================
      import java.util.TreeMap;

      public class test {

      public static void main (String[] args)

      { System.out.println("" + new TreeMap().put(new Object(), new Object())); }


      }
      =====================================================

      Output:
      C:\tmp\tmp17>C:\jrockit-jdk1.5.0-windows-ia32\bin\java.exe -showversion test
      java version "1.5.0"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
      BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32, R25.0.0-75, GC: System optimized over throughput (initial strategy singleparpar))

      null

      C:\tmp\tmp17>C:\harmony\trunk_0427\deploy\jdk\jre\bin\java.exe -showversion test
      java version 1.5 (subset)

      (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
      Exception in thread "main" java.lang.ClassCastException: java.lang.Object incompatible with java.lang.Comparable
      at java.util.TreeMap.toComparable(TreeMap.java:79)
      at java.util.TreeMap.rbInsert(TreeMap.java:1230)
      at java.util.TreeMap.put(TreeMap.java:1174)
      at test.main(test.java:6)

      1. 780_new.diff
        2 kB
        spark shen
      2. TreeMap.diff
        0.5 kB
        Igor V. Stolyarov
      3. TreeMapTest.patch
        0.6 kB
        Vladimir Ivanov

        Activity

        Hide
        Paulex Yang added a comment -

        Verified by Vladimir.

        Show
        Paulex Yang added a comment - Verified by Vladimir.
        Hide
        Vladimir Ivanov added a comment -

        verified, thanks

        Show
        Vladimir Ivanov added a comment - verified, thanks
        Hide
        Paulex Yang added a comment -

        Spark, patch applied at revision r447285, thanks a lot for this enhancement.

        Vladimir, please verify that the problem is fully fixed as you expected.

        Show
        Paulex Yang added a comment - Spark, patch applied at revision r447285, thanks a lot for this enhancement. Vladimir, please verify that the problem is fully fixed as you expected.
        Hide
        spark shen added a comment -

        The old patch of JIRA 780 is invalid. I update the patch for this JIRA.

        Would you please try this new patch?

        Show
        spark shen added a comment - The old patch of JIRA 780 is invalid. I update the patch for this JIRA. Would you please try this new patch?
        Hide
        Igor V. Stolyarov added a comment -

        Was added try-catch block for handling ClassCastException

        Show
        Igor V. Stolyarov added a comment - Was added try-catch block for handling ClassCastException
        Hide
        Vladimir Ivanov added a comment -

        unit test

        Show
        Vladimir Ivanov added a comment - unit test

          People

          • Assignee:
            Paulex Yang
            Reporter:
            Vladimir Ivanov
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development