Buggy code:
public static String getOption ( String optionName ) { } public static Hashtable getOptions ( ) { } public static Plugin getPlugin ( ) { } public static IClasspathEntry getResolvedClasspathEntry ( IClasspathEntry entry ) { } public static IPath getResolvedVariablePath ( IPath variablePath ) { } public static IWorkingCopy [ ] getSharedWorkingCopies ( IBufferFactory factory ) { } protected void initializeDefaultPluginPreferences ( ) { Preferences preferences = getPluginPreferences ( ) ; HashSet optionNames = OptionNames ; preferences . setDefault ( JavaCore . COMPILER_LOCAL_VARIABLE_ATTR , JavaCore . GENERATE ) ; optionNames . add ( JavaCore . COMPILER_LOCAL_VARIABLE_ATTR ) ; preferences . setDefault ( JavaCore . COMPILER_LINE_NUMBER_ATTR , JavaCore . GENERATE ) ; optionNames . add ( JavaCore . COMPILER_LINE_NUMBER_ATTR ) ; preferences . setDefault ( JavaCore . COMPILER_SOURCE_FILE_ATTR , JavaCore . GENERATE ) ; optionNames . add ( JavaCore . COMPILER_SOURCE_FILE_ATTR ) ; preferences . setDefault ( JavaCore . COMPILER_CODEGEN_UNUSED_LOCAL , JavaCore . PRESERVE ) ; optionNames . add ( JavaCore . COMPILER_CODEGEN_UNUSED_LOCAL ) ; preferences . setDefault ( JavaCore . COMPILER_CODEGEN_TARGET_PLATFORM , JavaCore . VERSION_1_1 ) ; optionNames . add ( JavaCore . COMPILER_CODEGEN_TARGET_PLATFORM ) ; preferences . setDefault ( JavaCore . COMPILER_PB_UNREACHABLE_CODE , JavaCore . ERROR ) ; optionNames . add ( JavaCore . COMPILER_PB_UNREACHABLE_CODE ) ; preferences . setDefault ( JavaCore . COMPILER_PB_INVALID_IMPORT , JavaCore . ERROR ) ; optionNames . add ( JavaCore . COMPILER_PB_INVALID_IMPORT ) ; preferences . setDefault ( JavaCore . COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD , JavaCore . WARNING ) ; optionNames . add ( JavaCore . COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD ) ; preferences . setDefault ( JavaCore . COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME , JavaCore . WARNING ) ; optionNames . add ( JavaCore . COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME ) ; preferences . setDefault ( JavaCore . COMPILER_PB_DEPRECATION , JavaCore . WARNING ) ; optionNames . add ( JavaCore . COMPILER_PB_DEPRECATION ) ; preferences . setDefault ( JavaCore . COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE , JavaCore . DISABLED ) ; optionNames . add ( JavaCore . COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE ) ; preferences . setDefault ( JavaCore . COMPILER_PB_HIDDEN_CATCH_BLOCK , JavaCore . WARNING ) ; optionNames . add ( JavaCore . COMPILER_PB_HIDDEN_CATCH_BLOCK ) ; preferences . setDefault ( JavaCore . COMPILER_PB_UNUSED_LOCAL , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . COMPILER_PB_UNUSED_LOCAL ) ; preferences . setDefault ( JavaCore . COMPILER_PB_UNUSED_PARAMETER , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . COMPILER_PB_UNUSED_PARAMETER ) ; preferences . setDefault ( JavaCore . COMPILER_PB_UNUSED_IMPORT , JavaCore . WARNING ) ; optionNames . add ( JavaCore . COMPILER_PB_UNUSED_IMPORT ) ; preferences . setDefault ( JavaCore . COMPILER_PB_SYNTHETIC_ACCESS_EMULATION , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . COMPILER_PB_SYNTHETIC_ACCESS_EMULATION ) ; preferences . setDefault ( JavaCore . COMPILER_PB_NON_NLS_STRING_LITERAL , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . COMPILER_PB_NON_NLS_STRING_LITERAL ) ; preferences . setDefault ( JavaCore . COMPILER_PB_ASSERT_IDENTIFIER , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . COMPILER_PB_ASSERT_IDENTIFIER ) ; preferences . setDefault ( JavaCore . COMPILER_PB_STATIC_ACCESS_RECEIVER , JavaCore . WARNING ) ; optionNames . add ( JavaCore . COMPILER_PB_STATIC_ACCESS_RECEIVER ) ; preferences . setDefault ( JavaCore . COMPILER_TASK_TAGS , "" ) ; optionNames . add ( JavaCore . COMPILER_TASK_TAGS ) ; preferences . setDefault ( JavaCore . COMPILER_TASK_PRIORITIES , "" ) ; optionNames . add ( JavaCore . COMPILER_TASK_PRIORITIES ) ; preferences . setDefault ( JavaCore . COMPILER_SOURCE , JavaCore . VERSION_1_3 ) ; optionNames . add ( JavaCore . COMPILER_SOURCE ) ; preferences . setDefault ( JavaCore . COMPILER_COMPLIANCE , JavaCore . VERSION_1_3 ) ; optionNames . add ( JavaCore . COMPILER_COMPLIANCE ) ; preferences . setDefault ( JavaCore . COMPILER_PB_MAX_PER_UNIT , "100" ) ; optionNames . add ( JavaCore . COMPILER_PB_MAX_PER_UNIT ) ; preferences . setDefault ( JavaCore . CORE_JAVA_BUILD_RESOURCE_COPY_FILTER , "" ) ; optionNames . add ( JavaCore . CORE_JAVA_BUILD_RESOURCE_COPY_FILTER ) ; preferences . setDefault ( JavaCore . CORE_JAVA_BUILD_INVALID_CLASSPATH , JavaCore . ABORT ) ; optionNames . add ( JavaCore . CORE_JAVA_BUILD_INVALID_CLASSPATH ) ; preferences . setDefault ( JavaCore . CORE_JAVA_BUILD_DUPLICATE_RESOURCE , JavaCore . WARNING ) ; optionNames . add ( JavaCore . CORE_JAVA_BUILD_DUPLICATE_RESOURCE ) ; <START_BUG> preferences . setDefault ( JavaCore . CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER , JavaCore . IGNORE ) ; <END_BUG> optionNames . add ( JavaCore . CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER ) ; preferences . setDefault ( JavaCore . CORE_JAVA_BUILD_ORDER , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . CORE_JAVA_BUILD_ORDER ) ; preferences . setDefault ( JavaCore . CORE_CIRCULAR_CLASSPATH , JavaCore . ERROR ) ; optionNames . add ( JavaCore . CORE_CIRCULAR_CLASSPATH ) ; preferences . setDefault ( JavaCore . CORE_INCOMPLETE_CLASSPATH , JavaCore . ERROR ) ; optionNames . add ( JavaCore . CORE_INCOMPLETE_CLASSPATH ) ; optionNames . add ( JavaCore . CORE_ENCODING ) ; preferences . setDefault ( JavaCore . FORMATTER_NEWLINE_OPENING_BRACE , JavaCore . DO_NOT_INSERT ) ; optionNames . add ( JavaCore . FORMATTER_NEWLINE_OPENING_BRACE ) ; preferences . setDefault ( JavaCore . FORMATTER_NEWLINE_CONTROL , JavaCore . DO_NOT_INSERT ) ; optionNames . add ( JavaCore . FORMATTER_NEWLINE_CONTROL ) ; preferences . setDefault ( JavaCore . FORMATTER_CLEAR_BLANK_LINES , JavaCore . PRESERVE_ONE ) ; optionNames . add ( JavaCore . FORMATTER_CLEAR_BLANK_LINES ) ; preferences . setDefault ( JavaCore . FORMATTER_NEWLINE_ELSE_IF , JavaCore . DO_NOT_INSERT ) ; optionNames . add ( JavaCore . FORMATTER_NEWLINE_ELSE_IF ) ; preferences . setDefault ( JavaCore . FORMATTER_NEWLINE_EMPTY_BLOCK , JavaCore . INSERT ) ; optionNames . add ( JavaCore . FORMATTER_NEWLINE_EMPTY_BLOCK ) ; preferences . setDefault ( JavaCore . FORMATTER_LINE_SPLIT , "80" ) ; optionNames . add ( JavaCore . FORMATTER_LINE_SPLIT ) ; preferences . setDefault ( JavaCore . FORMATTER_COMPACT_ASSIGNMENT , JavaCore . NORMAL ) ; optionNames . add ( JavaCore . FORMATTER_COMPACT_ASSIGNMENT ) ; preferences . setDefault ( JavaCore . FORMATTER_TAB_CHAR , JavaCore . TAB ) ; optionNames . add ( JavaCore . FORMATTER_TAB_CHAR ) ; preferences . setDefault ( JavaCore . FORMATTER_TAB_SIZE , "4" ) ; optionNames . add ( JavaCore . FORMATTER_TAB_SIZE ) ; preferences . setDefault ( JavaCore . CODEASSIST_VISIBILITY_CHECK , JavaCore . DISABLED ) ; optionNames . add ( JavaCore . CODEASSIST_VISIBILITY_CHECK ) ; preferences . setDefault ( JavaCore . CODEASSIST_IMPLICIT_QUALIFICATION , JavaCore . DISABLED ) ; optionNames . add ( JavaCore . CODEASSIST_IMPLICIT_QUALIFICATION ) ; }

Fix:
preferences . setDefault ( JavaCore . CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER , JavaCore . CLEAN ) ;