Index: modules/luni/src/test/api/java/org/apache/harmony/luni/tests/java/util/ArraysTest.java =================================================================== --- modules/luni/src/test/api/java/org/apache/harmony/luni/tests/java/util/ArraysTest.java (revision 421286) +++ modules/luni/src/test/api/java/org/apache/harmony/luni/tests/java/util/ArraysTest.java (working copy) @@ -67,6 +67,14 @@ assertEquals("Assert 2: Invalid search index for 1f", -8, Arrays.binarySearch(specials, 1f)); } + + /** + * @tests java.util.Arrays#binarySearch(Object[], object) + */ + public void test_binarySearch$OO() { + assertEquals("Binary search succeeded for non-comparable value in empty array", + -1, Arrays.binarySearch(new Object[] {}, new Object())); + } /** * @tests java.util.Arrays#equals(double[], double[]) Index: modules/luni/src/main/java/java/util/Arrays.java =================================================================== --- modules/luni/src/main/java/java/util/Arrays.java (revision 421286) +++ modules/luni/src/main/java/java/util/Arrays.java (working copy) @@ -357,6 +357,9 @@ */ @SuppressWarnings("unchecked") public static int binarySearch(Object[] array, Object object) { + if(array.length == 0) { + return -1; + } Comparable key = (Comparable) object; int low = 0, mid = 0, high = array.length - 1, result = 0; while (low <= high) {