Buggy code:
public class Project { public static final int MSG_ERR = 0 ; public static final int MSG_WARN = 1 ; public static final int MSG_INFO = 2 ; public static final int MSG_VERBOSE = 3 ; public static final int MSG_DEBUG = 4 ; private static final String VISITING = "VISITING" ; private static final String VISITED = "VISITED" ; private static String javaVersion ; public static final String JAVA_1_0 = "1.0" ; public static final String JAVA_1_1 = "1.1" ; public static final String JAVA_1_2 = "1.2" ; public static final String JAVA_1_3 = "1.3" ; public static final String JAVA_1_4 = "1.4" ; public static final String TOKEN_START = FilterSet . DEFAULT_TOKEN_START ; public static final String TOKEN_END = FilterSet . DEFAULT_TOKEN_END ; private String name ; private String description ; private Hashtable properties = new Hashtable ( ) ; private Hashtable userProperties = new Hashtable ( ) ; private Hashtable references = new Hashtable ( ) ; private String defaultTarget ; private Hashtable dataClassDefinitions = new Hashtable ( ) ; private Hashtable taskClassDefinitions = new Hashtable ( ) ; private Hashtable createdTasks = new Hashtable ( ) ; private Hashtable targets = new Hashtable ( ) ; private FilterSet globalFilterSet = new FilterSet ( ) ; private FilterSetCollection globalFilters = new FilterSetCollection ( globalFilterSet ) ; private File baseDir ; private Vector listeners = new Vector ( ) ; private ClassLoader coreLoader = null ; private Hashtable threadTasks = new Hashtable ( ) ; private FileUtils fileUtils ; public Project ( ) { } public void init ( ) throws BuildException { } public void setCoreLoader ( ClassLoader coreLoader ) { } public ClassLoader getCoreLoader ( ) { } public void addBuildListener ( BuildListener listener ) { } public void removeBuildListener ( BuildListener listener ) { } public Vector getBuildListeners ( ) { } public void log ( String msg ) { } public void log ( String msg , int msgLevel ) { } public void log ( Task task , String msg , int msgLevel ) { } public void log ( Target target , String msg , int msgLevel ) { } public FilterSet getGlobalFilterSet ( ) { } public void setProperty ( String name , String value ) { } public void setNewProperty ( String name , String value ) { } public void setUserProperty ( String name , String value ) { } private void setPropertyInternal ( String name , String value ) { } public String getProperty ( String name ) { } public String replaceProperties ( String value ) throws BuildException { <START_BUG> return ProjectHelper . replaceProperties ( this , value ) ; <END_BUG> } public String getUserProperty ( String name ) { } public Hashtable getProperties ( ) { } public Hashtable getUserProperties ( ) { } public void setDefaultTarget ( String defaultTarget ) { } public String getDefaultTarget ( ) { } public void setDefault ( String defaultTarget ) { } public void setName ( String name ) { } public String getName ( ) { } public void setDescription ( String description ) { } public String getDescription ( ) { } public void addFilter ( String token , String value ) { } public Hashtable getFilters ( ) { } public void setBasedir ( String baseD ) throws BuildException { } public void setBaseDir ( File baseDir ) throws BuildException { } public File getBaseDir ( ) { } public static String getJavaVersion ( ) { } public void setJavaVersionProperty ( ) throws BuildException { } public void setSystemProperties ( ) { } public void addTaskDefinition ( String taskName , Class taskClass ) throws BuildException { } public void checkTaskClass ( final Class taskClass ) throws BuildException { } public Hashtable getTaskDefinitions ( ) { } public void addDataTypeDefinition ( String typeName , Class typeClass ) { } public Hashtable getDataTypeDefinitions ( ) { } public void addTarget ( Target target ) { } public void addTarget ( String targetName , Target target ) throws BuildException { } public void addOrReplaceTarget ( Target target ) { } public void addOrReplaceTarget ( String targetName , Target target ) { } public Hashtable getTargets ( ) { } public Task createTask ( String taskType ) throws BuildException { } private void addCreatedTask ( String type , Task task ) { } private void invalidateCreatedTasks ( String type ) { } public Object createDataType ( String typeName ) throws BuildException { } public void executeTargets ( Vector targetNames ) throws BuildException { } public void demuxOutput ( String line , boolean isError ) { } public void executeTarget ( String targetName ) throws BuildException { } public File resolveFile ( String fileName , File rootDir ) { } public File resolveFile ( String fileName ) { } public static String translatePath ( String to_process ) { } public void copyFile ( String sourceFile , String destFile ) throws IOException { } public void copyFile ( String sourceFile , String destFile , boolean filtering ) throws IOException { } public void copyFile ( String sourceFile , String destFile , boolean filtering , boolean overwrite ) throws IOException { } public void copyFile ( String sourceFile , String destFile , boolean filtering , boolean overwrite , boolean preserveLastModified ) throws IOException { } public void copyFile ( File sourceFile , File destFile ) throws IOException { } public void copyFile ( File sourceFile , File destFile , boolean filtering ) throws IOException { } public void copyFile ( File sourceFile , File destFile , boolean filtering , boolean overwrite ) throws IOException { } public void copyFile ( File sourceFile , File destFile , boolean filtering , boolean overwrite , boolean preserveLastModified ) throws IOException { } public void setFileLastModified ( File file , long time ) throws BuildException { } public static boolean toBoolean ( String s ) { } public final Vector topoSort ( String root , Hashtable targets ) throws BuildException { }

Fix:
return ProjectHelper . replaceProperties ( this , value , properties ) ;