Buggy code:
public class Util { public interface Comparable { int compareTo ( Util . Comparable c ) { } } public interface Comparer { int compare ( Object a , Object b ) { } } private static final String ARGUMENTS_DELIMITER = "#" ; protected static ResourceBundle bundle ; private static final String bundleName = "org.eclipse.jdt.internal.core.util.messages" ; private static final char [ ] DOUBLE_QUOTES = "''" . toCharArray ( ) ; private static final String EMPTY_ARGUMENT = "<seq2seq4repair_space>" ; private static final char [ ] SINGLE_QUOTE = "'" . toCharArray ( ) ; private Util ( ) { } public static final String [ ] arrayConcat ( String [ ] first , String second ) { } public static String bind ( String id ) { } public static String bind ( String id , String binding ) { } public static String bind ( String id , String binding1 , String binding2 ) { } public static String bind ( String id , String [ ] bindings ) { } private static int checkTypeSignature ( String sig , int start , int end , boolean allowVoid ) { } public static int combineHashCodes ( int hashCode1 , int hashCode2 ) { } public static int compare ( byte [ ] a , byte [ ] b ) { } public static int compare ( char [ ] str1 , char [ ] str2 ) { } public static String concat ( String s1 , char c , String s2 ) { } public static String concat ( String s1 , String s2 ) { } public static final String concatWith ( String [ ] array , char separator ) { StringBuffer buffer = new StringBuffer ( ) ; for ( int i = 0 , length = array . length ; i < length ; i ++ ) { buffer . append ( array [ i ] ) ; if ( i < ( length - 1 ) ) <START_BUG> buffer . append ( '.' ) ; <END_BUG> } return buffer . toString ( ) ; } public static final String concatWith ( String [ ] array , String name , char separator ) { } public static String concat ( String s1 , String s2 , String s3 ) { } public static String convertTypeSignature ( char [ ] sig ) { } public static final String editedString ( String original , TextEdit edit ) { } public static final boolean endsWithIgnoreCase ( String str , String end ) { } public static boolean equalArraysOrNull ( int [ ] a , int [ ] b ) { } public static boolean equalArraysOrNull ( Object [ ] a , Object [ ] b ) { } public static boolean equalArraysOrNullSortFirst ( Util . Comparable [ ] a , Util . Comparable [ ] b ) { } public static boolean equalArraysOrNullSortFirst ( String [ ] a , String [ ] b ) { } public static boolean equalOrNull ( Object a , Object b ) { } public static String extractLastName ( String qualifiedName ) { } public static String [ ] extractParameterTypes ( char [ ] sig ) { } public static String extractReturnType ( String sig ) { } private static IFile findFirstClassFile ( IFolder folder ) { } public static String findLineSeparator ( char [ ] text ) { } public static IClassFileAttribute getAttribute ( IClassFileReader classFileReader , char [ ] attributeName ) { } public static IClassFileAttribute getAttribute ( ICodeAttribute codeAttribute , char [ ] attributeName ) { } public static IClassFileAttribute getAttribute ( IFieldInfo fieldInfo , char [ ] attributeName ) { } public static IClassFileAttribute getAttribute ( IMethodInfo methodInfo , char [ ] attributeName ) { } public static long getJdkLevel ( Object targetLibrary ) { } private static String getLineSeparator ( char [ ] text , char [ ] buffer ) { } public static int getParameterCount ( char [ ] sig ) { } public static String getProblemArgumentsForMarker ( String [ ] arguments ) { } public static String [ ] getProblemArgumentsFromMarker ( String argumentsString ) { } public static byte [ ] getResourceContentsAsByteArray ( IFile file ) throws JavaModelException { } public static char [ ] getResourceContentsAsCharArray ( IFile file ) throws JavaModelException { } public static char [ ] getResourceContentsAsCharArray ( IFile file , String encoding ) throws JavaModelException { } public static String [ ] getTrimmedSimpleNames ( String name ) { } public static int indexOfEnclosingPath ( IPath checkedPath , IPath [ ] paths , int pathCount ) { } public static int indexOfMatchingPath ( IPath checkedPath , IPath [ ] paths , int pathCount ) { } public static int indexOfNestedPath ( IPath checkedPath , IPath [ ] paths , int pathCount ) { } public static final boolean isExcluded ( IJavaElement element ) { } public static final boolean isExcluded ( IPath resourcePath , char [ ] [ ] inclusionPatterns , char [ ] [ ] exclusionPatterns , boolean isFolderPath ) { } public static final boolean isExcluded ( IResource resource , char [ ] [ ] inclusionPatterns , char [ ] [ ] exclusionPatterns ) { } public static boolean isValidClassFileName ( String name ) { } public static boolean isValidCompilationUnitName ( String name ) { } public static boolean isValidFolderNameForPackage ( String folderName ) { } public static boolean isValidMethodSignature ( String sig ) { } public static boolean isValidTypeSignature ( String sig , boolean allowVoid ) { } public static void log ( Throwable e , String message ) { } public static char [ ] normalizeCRs ( char [ ] text , char [ ] buffer ) { } public static String normalizeCRs ( String text , String buffer ) { } public static String packageName ( IPath pkgPath ) { } public static int prefixLength ( char [ ] s1 , char [ ] s2 ) { } public static int prefixLength ( String s1 , String s2 ) { }

Fix:
buffer . append ( separator ) ;