Buggy code:
public final class Util { public static final SortedMap EMPTY_SORTED_MAP = Collections . unmodifiableSortedMap ( new TreeMap ( ) ) ; public static final SortedSet EMPTY_SORTED_SET = Collections . unmodifiableSortedSet ( new TreeSet ( ) ) ; public static final String ZERO_LENGTH_STRING = "" ; public static String safeString ( String input ) { } public static Object getAdapter ( Object sourceObject , Class adapterType ) { } public static void assertInstance ( Object object , Class c ) { } public static void assertInstance ( Object object , Class c , boolean allowNull ) { } public static int compare ( boolean left , boolean right ) { } public static int compare ( Comparable left , Comparable right ) { } public static int compare ( Comparable [ ] left , Comparable [ ] right ) { } public static int compare ( int left , int right ) { } public static int compare ( List left , List right ) { } public static int compare ( Object left , Object right ) { } public static final int compareIdentity ( Object left , Object right ) { } public static void diff ( Map left , Map right , Set leftOnly , Set different , Set rightOnly ) { } public static void diff ( Set left , Set right , Set leftOnly , Set rightOnly ) { } public static boolean endsWith ( List left , List right , boolean equals ) { } public static boolean endsWith ( Object [ ] left , Object [ ] right , boolean equals ) { } public static boolean equals ( boolean left , boolean right ) { } public static boolean equals ( int left , int right ) { } public static boolean equals ( Object left , Object right ) { } public static final boolean equals ( final Object [ ] leftArray , final Object [ ] rightArray ) { } public static int hashCode ( boolean b ) { } public static int hashCode ( int i ) { } public static int hashCode ( Object object ) { } public static Collection safeCopy ( Collection collection , Class c ) { } public static Collection safeCopy ( Collection collection , Class c , boolean allowNullElements ) { } public static List safeCopy ( List list , Class c ) { } public static List safeCopy ( List list , Class c , boolean allowNullElements ) { } public static Map safeCopy ( Map map , Class keyClass , Class valueClass ) { } public static Map safeCopy ( Map map , Class keyClass , Class valueClass , boolean allowNullKeys , boolean allowNullValues ) { } public static Set safeCopy ( Set set , Class c ) { } public static Set safeCopy ( Set set , Class c , boolean allowNullElements ) { } public static SortedMap safeCopy ( SortedMap sortedMap , Class keyClass , Class valueClass ) { } public static SortedMap safeCopy ( SortedMap sortedMap , Class keyClass , Class valueClass , boolean allowNullKeys , boolean allowNullValues ) { } public static SortedSet safeCopy ( SortedSet sortedSet , Class c ) { } public static SortedSet safeCopy ( SortedSet sortedSet , Class c , boolean allowNullElements ) { } public static boolean startsWith ( List left , List right , boolean equals ) { } public static boolean startsWith ( Object [ ] left , Object [ ] right , boolean equals ) { } public static String translateString ( ResourceBundle resourceBundle , String key ) { } public static String translateString ( ResourceBundle resourceBundle , String key , String string , boolean signal , boolean trim ) { } public static void arrayCopyWithRemoval ( Object [ ] src , Object [ ] dst , int idxToRemove ) { } public static Object [ ] appendArray ( Object [ ] array1 , Object [ ] array2 ) { } private Util ( ) { } public static String intern ( String string ) { } public static String [ ] getArrayFromList ( String prop , String separator ) { } public static IWorkbenchWindow getWorkbenchWindowForShell ( Shell shellToCheck ) { } public static Shell getShellToParentOn ( ) { } public static String [ ] split ( String src , char delim ) { if ( src == null ) return null ; String [ ] splitStr = new String [ 2 ] ; int delimIndex = src . indexOf ( delim ) ; if ( ( ( delimIndex == ( - 1 ) ) || ( delimIndex == 0 ) ) || ( delimIndex == ( ( src . length ( ) ) - 1 ) ) ) { splitStr [ 0 ] = src ; splitStr [ 1 ] = Util . ZERO_LENGTH_STRING ; } <START_BUG> splitStr [ 0 ] = src . substring ( 0 , ( delimIndex - 1 ) ) ; <END_BUG> splitStr [ 1 ] = src . substring ( ( delimIndex + 1 ) ) ; return splitStr ; } }

Fix:
splitStr [ 0 ] = src . substring ( 0 , delimIndex ) ;