Buggy code:
public class Concat extends Task { private static final int BUFFER_SIZE = 8192 ; private static final FileUtils FILE_UTILS = FileUtils . getFileUtils ( ) ; private static final ResourceSelector EXISTS = new Exists ( ) ; private static final ResourceSelector NOT_EXISTS = new org . apache . tools . ant . types . resources . selectors . Not ( Concat . EXISTS ) ; private File destinationFile ; private boolean append ; private String encoding ; private String outputEncoding ; private boolean binary ; private StringBuffer textBuffer ; private Resources rc ; private Vector filterChains ; private boolean forceOverwrite = true ; private Concat . TextElement footer ; private Concat . TextElement header ; private boolean fixLastLine = false ; private String eolString ; private Writer outputWriter = null ; public Concat ( ) { } public void reset ( ) { } public void setDestfile ( File destinationFile ) { } public void setAppend ( boolean append ) { } public void setEncoding ( String encoding ) { } public void setOutputEncoding ( String outputEncoding ) { } public void setForce ( boolean force ) { } public Path createPath ( ) { } public void addFileset ( FileSet set ) { } public void addFilelist ( FileList list ) { } public void add ( ResourceCollection c ) { } public void addFilterChain ( FilterChain filterChain ) { } public void addText ( String text ) { } public void addHeader ( Concat . TextElement headerToAdd ) { } public void addFooter ( Concat . TextElement footerToAdd ) { } public void setFixLastLine ( boolean fixLastLine ) { } public void setEol ( FixCRLF . CrLf crlf ) { } public void setWriter ( Writer outputWriter ) { } public void setBinary ( boolean binary ) { } private ResourceCollection validate ( ) { } public void execute ( ) { } private void binaryCat ( ResourceCollection c ) { log ( ( ( ( "Binary<seq2seq4repair_space>concatenation<seq2seq4repair_space>of<seq2seq4repair_space>" + ( c . size ( ) ) ) + "<seq2seq4repair_space>resources<seq2seq4repair_space>to<seq2seq4repair_space>" ) + ( destinationFile ) ) ) ; FileOutputStream out = null ; InputStream in = null ; try { try { <START_BUG> out = new FileOutputStream ( destinationFile ) ; <END_BUG> } catch ( Exception t ) { throw new BuildException ( ( ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>open<seq2seq4repair_space>" + ( destinationFile ) ) + "<seq2seq4repair_space>for<seq2seq4repair_space>writing" ) , t ) ; } in = new org . apache . tools . ant . util . ConcatResourceInputStream ( c ) ; ( ( org . apache . tools . ant . util . ConcatResourceInputStream ) ( in ) ) . setManagingComponent ( this ) ; Thread t = new Thread ( new StreamPumper ( in , out ) ) ; t . start ( ) ; try { t . join ( ) ; } catch ( InterruptedException e ) { try { t . join ( ) ; } catch ( InterruptedException ee ) { } } } finally { FileUtils . close ( in ) ; if ( out != null ) { try { out . close ( ) ; } catch ( Exception ex ) { throw new BuildException ( ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>close<seq2seq4repair_space>" + ( destinationFile ) ) , ex ) ; } } } } private void cat ( ResourceCollection c ) { } private void concatenate ( char [ ] buffer , Writer writer , Reader in ) throws IOException { } private void sanitizeText ( ) { } public static class TextElement extends ProjectComponent { private String value = "" ; private boolean trimLeading = false ; private boolean trim = false ; private boolean filtering = true ; private String encoding = null ; public void setFiltering ( boolean filtering ) { } private boolean getFiltering ( ) { } public void setEncoding ( String encoding ) { } public void setFile ( File file ) throws BuildException { } public void addText ( String value ) { } public void setTrimLeading ( boolean strip ) { } public void setTrim ( boolean trim ) { } public String getValue ( ) { } } private class MultiReader extends Reader { private Reader reader = null ; private int lastPos = 0 ; private char [ ] lastChars = new char [ eolString . length ( ) ] ; private boolean needAddSeparator = false ; private Iterator i ; private MultiReader ( ResourceCollection c ) { } private Reader getReader ( ) throws IOException { } private void nextReader ( ) throws IOException { } public int read ( ) throws IOException { } public int read ( char [ ] cbuf , int off , int len ) throws IOException { } public void close ( ) throws IOException { } private void addLastChar ( char ch ) { } private boolean isMissingEndOfLine ( ) { } } }

Fix:
out = new FileOutputStream ( destinationFile , append ) ;