Buggy code:
public class FileUtils { private static Random rand = new Random ( System . currentTimeMillis ( ) ) ; private static Object lockReflection = new Object ( ) ; private static Method setLastModified = null ; private boolean onNetWare = Os . isFamily ( "netware" ) ; private static boolean [ ] isSpecial = new boolean [ 256 ] ; private static char [ ] escapedChar1 = new char [ 256 ] ; private static char [ ] escapedChar2 = new char [ 256 ] ; public static FileUtils newFileUtils ( ) { } protected FileUtils ( ) { } public URL getFileURL ( File file ) throws MalformedURLException { } public void copyFile ( String sourceFile , String destFile ) throws IOException { } public void copyFile ( String sourceFile , String destFile , FilterSetCollection filters ) throws IOException { } public void copyFile ( String sourceFile , String destFile , FilterSetCollection filters , boolean overwrite ) throws IOException { } public void copyFile ( String sourceFile , String destFile , FilterSetCollection filters , boolean overwrite , boolean preserveLastModified ) throws IOException { } public void copyFile ( String sourceFile , String destFile , FilterSetCollection filters , boolean overwrite , boolean preserveLastModified , String encoding ) throws IOException { } public void copyFile ( String sourceFile , String destFile , FilterSetCollection filters , Vector filterChains , boolean overwrite , boolean preserveLastModified , String encoding , Project project ) throws IOException { } public void copyFile ( String sourceFile , String destFile , FilterSetCollection filters , Vector filterChains , boolean overwrite , boolean preserveLastModified , String inputEncoding , String outputEncoding , Project project ) throws IOException { } public void copyFile ( File sourceFile , File destFile ) throws IOException { } public void copyFile ( File sourceFile , File destFile , FilterSetCollection filters ) throws IOException { } public void copyFile ( File sourceFile , File destFile , FilterSetCollection filters , boolean overwrite ) throws IOException { } public void copyFile ( File sourceFile , File destFile , FilterSetCollection filters , boolean overwrite , boolean preserveLastModified ) throws IOException { } public void copyFile ( File sourceFile , File destFile , FilterSetCollection filters , boolean overwrite , boolean preserveLastModified , String encoding ) throws IOException { } public void copyFile ( File sourceFile , File destFile , FilterSetCollection filters , Vector filterChains , boolean overwrite , boolean preserveLastModified , String encoding , Project project ) throws IOException { } public void copyFile ( File sourceFile , File destFile , FilterSetCollection filters , Vector filterChains , boolean overwrite , boolean preserveLastModified , String inputEncoding , String outputEncoding , Project project ) throws IOException { if ( ( overwrite || ( ! ( destFile . exists ( ) ) ) ) || ( ( destFile . lastModified ( ) ) < ( sourceFile . lastModified ( ) ) ) ) { if ( ( destFile . exists ( ) ) && ( destFile . isFile ( ) ) ) { destFile . delete ( ) ; } File parent = getParentFile ( destFile ) ; if ( ! ( parent . exists ( ) ) ) { parent . mkdirs ( ) ; } final boolean filterSetsAvailable = ( filters != null ) && ( filters . hasFilters ( ) ) ; final boolean filterChainsAvailable = ( filterChains != null ) && ( ( filterChains . size ( ) ) > 0 ) ; if ( filterSetsAvailable ) { BufferedReader in = null ; BufferedWriter out = null ; try { if ( inputEncoding == null ) { in = new BufferedReader ( new FileReader ( sourceFile ) ) ; } else { InputStreamReader isr = new InputStreamReader ( new FileInputStream ( sourceFile ) , inputEncoding ) ; in = new BufferedReader ( isr ) ; } if ( outputEncoding == null ) { out = new BufferedWriter ( new FileWriter ( destFile ) ) ; } else { OutputStreamWriter osw = new OutputStreamWriter ( new FileOutputStream ( destFile ) , outputEncoding ) ; out = new BufferedWriter ( osw ) ; } if ( filterChainsAvailable ) { ChainReaderHelper crh = new ChainReaderHelper ( ) ; crh . setBufferSize ( 8192 ) ; crh . setPrimaryReader ( in ) ; crh . setFilterChains ( filterChains ) ; crh . setProject ( project ) ; Reader rdr = crh . getAssembledReader ( ) ; in = new BufferedReader ( rdr ) ; } <START_BUG> TokenFilter . LineTokenizer lineTokenizer = new TokenFilter . LineTokenizer ( ) ; <END_BUG> lineTokenizer . setIncludeDelims ( true ) ; String newline = null ; String line = lineTokenizer . getToken ( in ) ; while ( line != null ) { if ( ( line . length ( ) ) == 0 ) { out . newLine ( ) ; } else { newline = filters . replaceTokens ( line ) ; out . write ( newline ) ; } line = lineTokenizer . getToken ( in ) ; } } finally { if ( out != null ) { out . close ( ) ; } if ( in != null ) { in . close ( ) ; } } } else if ( ( filterChainsAvailable || ( ( inputEncoding != null ) && ( ! ( inputEncoding . equals ( outputEncoding ) ) ) ) ) || ( ( inputEncoding == null ) && ( outputEncoding != null ) ) ) { BufferedReader in = null ; BufferedWriter out = null ; try { if ( inputEncoding == null ) { in = new BufferedReader ( new FileReader ( sourceFile ) ) ; } else { in = new BufferedReader ( new InputStreamReader ( new FileInputStream ( sourceFile ) , inputEncoding ) ) ; } if ( outputEncoding == null ) { out = new BufferedWriter ( new FileWriter ( destFile ) ) ; }

Fix:
LineTokenizer lineTokenizer = new LineTokenizer ( ) ;