String.indexOf(String, int) bug
    Colin Stevens 
    cstevens at eng.sun.com
       
    Wed May 26 17:29:58 PDT 1999
    
    
  
String.indexOf(String str, int offset) crashes if str is a 0-length string,
since the implmentation always dereferences at least one character in the 
string.  A Q&D solution is to change String.indexOf(String, int) to check if 
"str" is length 0 (and then return 0) at the beginning.
Run this:
public class foo {
    public static void
    main(String[] args)
        throws Exception
    {
        String src = "abcdefghijklmnopqrstuvwxyz";
        int index = src.indexOf("");
        System.out.println(index);
    }
}
get this:
java.lang.ArrayIndexOutOfBoundsException
        at java.lang.String.indexOf(String.java:269)
        at java.lang.String.indexOf(String.java:257)
        at foo.main(foo.java:7)
    
    
More information about the kaffe
mailing list