Buggy code:
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_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT , JavaCore . DISABLED ) ; optionNames . add ( JavaCore . COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT ) ; preferences . setDefault ( JavaCore . COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE , JavaCore . DISABLED ) ; optionNames . add ( JavaCore . COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE ) ; preferences . setDefault ( JavaCore . COMPILER_PB_UNUSED_IMPORT , JavaCore . WARNING ) ; optionNames . add ( JavaCore . COMPILER_PB_UNUSED_IMPORT ) ; preferences . setDefault ( JavaCore . COMPILER_PB_UNUSED_PRIVATE_MEMBER , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . COMPILER_PB_UNUSED_PRIVATE_MEMBER ) ; 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_PB_NO_EFFECT_ASSIGNMENT , JavaCore . WARNING ) ; optionNames . add ( JavaCore . COMPILER_PB_NO_EFFECT_ASSIGNMENT ) ; preferences . setDefault ( JavaCore . COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD , JavaCore . WARNING ) ; optionNames . add ( JavaCore . COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD ) ; preferences . setDefault ( JavaCore . COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION , JavaCore . WARNING ) ; optionNames . add ( JavaCore . COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION ) ; preferences . setDefault ( JavaCore . COMPILER_PB_LOCAL_VARIABLE_HIDING , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . COMPILER_PB_LOCAL_VARIABLE_HIDING ) ; preferences . setDefault ( JavaCore . COMPILER_PB_FIELD_HIDING , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . COMPILER_PB_FIELD_HIDING ) ; preferences . setDefault ( JavaCore . COMPILER_PB_SPECIAL_PARAMETER_HIDING_FIELD , JavaCore . DISABLED ) ; optionNames . add ( JavaCore . COMPILER_PB_SPECIAL_PARAMETER_HIDING_FIELD ) ; preferences . setDefault ( JavaCore . COMPILER_PB_POSSIBLE_ACCIDENTAL_BOOLEAN_ASSIGNMENT , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . COMPILER_PB_POSSIBLE_ACCIDENTAL_BOOLEAN_ASSIGNMENT ) ; <START_BUG> preferences . setDefault ( JavaCore . COMPILER_PB_SUPERFLUOUS_SEMICOLON , JavaCore . WARNING ) ; <END_BUG> optionNames . add ( JavaCore . COMPILER_PB_SUPERFLUOUS_SEMICOLON ) ; preferences . setDefault ( JavaCore . COMPILER_TASK_TAGS , JavaCore . DEFAULT_TASK_TAG ) ; optionNames . add ( JavaCore . COMPILER_TASK_TAGS ) ; preferences . setDefault ( JavaCore . COMPILER_TASK_PRIORITIES , JavaCore . DEFAULT_TASK_PRIORITY ) ; 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 ) ; preferences . setDefault ( JavaCore . CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER , JavaCore . CLEAN ) ; 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_INCOMPLETE_CLASSPATH , JavaCore . ERROR ) ; optionNames . add ( JavaCore . CORE_INCOMPLETE_CLASSPATH ) ; preferences . setDefault ( JavaCore . CORE_CIRCULAR_CLASSPATH , JavaCore . ERROR ) ; optionNames . add ( JavaCore . CORE_CIRCULAR_CLASSPATH ) ; preferences . setDefault ( JavaCore . CORE_INCOMPATIBLE_JDK_LEVEL , JavaCore . IGNORE ) ; optionNames . add ( JavaCore . CORE_INCOMPATIBLE_JDK_LEVEL ) ; preferences . setDefault ( JavaCore . CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS , JavaCore . ENABLED ) ; optionNames . add ( JavaCore . CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS ) ; preferences . setDefault ( JavaCore . CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS , JavaCore . ENABLED ) ;

Fix:
preferences . setDefault ( JavaCore . COMPILER_PB_SUPERFLUOUS_SEMICOLON , JavaCore . IGNORE ) ;