Program: 10262
Project: 10262
Buggy source:
private static void applyConfFileOption(ComponentManager cm,Component component,ConfFileOption option){
  String optionName=option.getSubOption();
  ConfigOption<?> configOption=cm.getConfigOption(component.getClass(),optionName);
  if (configOption != null) {
    try {
      if (configOption instanceof StringConfigOption && option.isStringOption()) {
        ConfigEntry<String> entry=new ConfigEntry<String>((StringConfigOption)configOption,option.getStringValue());
        cm.applyConfigEntry(component,entry);
      }
 else       if (configOption instanceof IntegerConfigOption && option.isIntegerOption()) {
        ConfigEntry<Integer> entry=new ConfigEntry<Integer>((IntegerConfigOption)configOption,option.getIntValue());
        cm.applyConfigEntry(component,entry);
      }
 else       if (configOption instanceof DoubleConfigOption && (option.isIntegerOption() || option.isDoubleOption())) {
        double value;
        if (option.isIntegerOption())         value=option.getIntValue();
 else         value=option.getDoubleValue();
        ConfigEntry<Double> entry=new ConfigEntry<Double>((DoubleConfigOption)configOption,value);
        cm.applyConfigEntry(component,entry);
      }
 else       if (configOption instanceof BooleanConfigOption && option.isStringOption()) {
        ConfigEntry<Boolean> entry=new ConfigEntry<Boolean>((BooleanConfigOption)configOption,Datastructures.strToBool(option.getStringValue()));
        cm.applyConfigEntry(component,entry);
      }
 else       if (configOption instanceof StringSetConfigOption && option.isSetOption()) {
        ConfigEntry<Set<String>> entry=new ConfigEntry<Set<String>>((StringSetConfigOption)configOption,option.getSetValues());
        cm.applyConfigEntry(component,entry);
      }
 else       if (configOption instanceof StringTupleListConfigOption && option.isListOption()) {
        ConfigEntry<List<StringTuple>> entry=new ConfigEntry<List<StringTuple>>((StringTupleListConfigOption)configOption,option.getListTuples());
        cm.applyConfigEntry(component,entry);
      }
 else {
        handleError("String_Node_Str" + option + "String_Node_Str");
      }
    }
 catch (    InvalidConfigOptionValueException e) {
      System.exit(0);
    }
  }
 else   handleError("String_Node_Str" + option + "String_Node_Str");
}

Fixed version (ground truth):
private static void applyConfFileOption(ComponentManager cm,Component component,ConfFileOption option){
  String optionName=option.getSubOption();
  ConfigOption<?> configOption=cm.getConfigOption(component.getClass(),optionName);
  if (configOption != null) {
    try {
      if (configOption instanceof StringConfigOption && option.isStringOption()) {
        ConfigEntry<String> entry=new ConfigEntry<String>((StringConfigOption)configOption,option.getStringValue());
        cm.applyConfigEntry(component,entry);
      }
 else       if (configOption instanceof IntegerConfigOption && option.isIntegerOption()) {
        ConfigEntry<Integer> entry=new ConfigEntry<Integer>((IntegerConfigOption)configOption,option.getIntValue());
        cm.applyConfigEntry(component,entry);
      }
 else       if (configOption instanceof DoubleConfigOption && (option.isIntegerOption() || option.isDoubleOption())) {
        double value;
        if (option.isIntegerOption())         value=option.getIntValue();
 else         value=option.getDoubleValue();
        ConfigEntry<Double> entry=new ConfigEntry<Double>((DoubleConfigOption)configOption,value);
        cm.applyConfigEntry(component,entry);
      }
 else       if (configOption instanceof BooleanConfigOption && option.isStringOption()) {
        ConfigEntry<Boolean> entry=new ConfigEntry<Boolean>((BooleanConfigOption)configOption,Datastructures.strToBool(option.getStringValue()));
        cm.applyConfigEntry(component,entry);
      }
 else       if (configOption instanceof StringSetConfigOption && option.isSetOption()) {
        ConfigEntry<Set<String>> entry=new ConfigEntry<Set<String>>((StringSetConfigOption)configOption,option.getSetValues());
        cm.applyConfigEntry(component,entry);
      }
 else       if (configOption instanceof StringTupleListConfigOption && option.isListOption()) {
        ConfigEntry<List<StringTuple>> entry=new ConfigEntry<List<StringTuple>>((StringTupleListConfigOption)configOption,option.getListTuples());
        cm.applyConfigEntry(component,entry);
      }
 else {
        handleError("String_Node_Str" + option.getFullName() + "String_Node_Str"+ option.getValue()+ "String_Node_Str"+ configOption.getClass().getName()+ "String_Node_Str");
      }
    }
 catch (    InvalidConfigOptionValueException e) {
      System.exit(0);
    }
  }
 else   handleError("String_Node_Str" + option + "String_Node_Str");
}