Buggy code:
public void setNewProperty ( String name , String value ) { } public void setUserProperty ( String name , String value ) { } public void setInheritedProperty ( String name , String value ) { } private void setPropertyInternal ( String name , String value ) { } public String getProperty ( String name ) { } public String replaceProperties ( String value ) throws BuildException { } public String getUserProperty ( String name ) { } public Hashtable getProperties ( ) { } public Hashtable getUserProperties ( ) { } public void copyUserProperties ( Project other ) { } public void copyInheritedProperties ( Project other ) { } 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 void setKeepGoingMode ( boolean keepGoingMode ) { } public boolean isKeepGoingMode ( ) { } 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 ) throws BuildException { } 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 { } public Object createDataType ( String typeName ) throws BuildException { } public void executeTargets ( Vector targetNames ) throws BuildException { } public void demuxOutput ( String output , boolean isWarning ) { } public int defaultInput ( byte [ ] buffer , int offset , int length ) throws IOException { } public int demuxInput ( byte [ ] buffer , int offset , int length ) throws IOException { } public void demuxFlush ( String output , 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 toProcess ) { } 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 { } private final void tsort ( String root , Hashtable targets , Hashtable state , Stack visiting , Vector ret ) throws BuildException { } private static BuildException makeCircularException ( String end , Stack stk ) { } public void addReference ( String name , Object value ) { } public Hashtable getReferences ( ) { } public Object getReference ( String key ) { } public String getElementName ( Object element ) { } public void fireBuildStarted ( ) { } public void fireBuildFinished ( Throwable exception ) { } protected void fireTargetStarted ( Target target ) { } protected void fireTargetFinished ( Target target , Throwable exception ) { } protected void fireTaskStarted ( Task task ) { } protected void fireTaskFinished ( Task task , Throwable exception ) { } private void fireMessageLoggedEvent ( BuildEvent event , String message , int priority ) { } protected void fireMessageLogged ( Project project , String message , int priority ) { } protected void fireMessageLogged ( Target target , String message , int priority ) { } protected void fireMessageLogged ( Task task , String message , int priority ) { } public synchronized void registerThreadTask ( Thread thread , Task task ) { } public Task getThreadTask ( Thread thread ) { } private static class AntRefTable extends Hashtable { private Project project ; public AntRefTable ( Project project ) { } public Object getReal ( Object key ) { } public Object get ( Object key ) { <START_BUG> Object o = super . get ( key ) ; <END_BUG> if ( o instanceof UnknownElement ) { UnknownElement ue = ( ( UnknownElement ) ( o ) ) ; ue . maybeConfigure ( ) ; o = ue . getRealThing ( ) ; } return o ; } } public final void setProjectReference ( final Object obj ) { } }

Fix:
Object o = getReal ( key ) ;