-
Bug
-
Resolution: Fixed
-
P2
-
1.4.0
-
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)
======================================================================
^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)
======================================================================