Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4528331

REGRESSION: Collections.binarySearch() throws NullPointerException

XMLWordPrintable

    • rc1
    • x86
    • windows_2000
    • Verified

      ^X
      ^G^G^G^G
      Name: rmT116609 Date: 11/16/2001


      java version "1.4.0-beta3"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta3-b84)
      Java HotSpot(TM) Client VM (build 1.4.0-beta3-b84, mixed mode)


      Collections.binarySearch(List list, Object key, Comparator c)
      throws a NullPointerException when null is given as Comparator.

      The docs states that giving null as a Comparator is perfectly ok, and works as expected in 1.3 but not in 1.4-beta3.


      public class BinSearchBug {
          
          
          static class Item implements java.lang.Comparable {
              String name;
              Item( String name ) {
                  this.name = name;
              }
              public int compareTo( Object o ) {
                  return name.compareTo( ((Item) o).name );
              }
          }

          public static void main (String args[]) {
              java.util.List list = new java.util.ArrayList();
              list.add( new Item( "item" ));
              
              // Works
              System.err.print( "binary search without comparator... " );
              java.util.Collections.binarySearch( list, new Item( "item_1" ));
              System.err.println( "ok" );
              
              // Throws a NullPointerException
              System.err.print( "binary search with null comparator... " );
              java.util.Collections.binarySearch( list, new Item( "item_1" ), null );
              System.err.println( "ok" );
          }

      }

      In JDK1.3.1_01:
      --------------------------
      C:\> java BinSearchBug
      binary search without comparator... ok
      binary search with null comparator... ok

      In JDK1.4.0-beta3:
      --------------------------
      binary search without comparator... ok
      binary search with null comparator... Exception in thread "main" java.lang.NullPointerException
              at java.util.Collections.indexedBinarySearch(Collections.java:311)
              at java.util.Collections.binarySearch(Collections.java:299)
              at BinSearchBug.main(BinSearchBug.java:25)
      (Review ID: 135806)
      ======================================================================

            jjb Josh Bloch (Inactive)
            rmandalasunw Ranjith Mandala (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: