Program: 136628
Project: 136628
Buggy source:
/** 
 * DOC bZhou Comment method "getIndicatorValue".
 * @param indicator
 * @return
 */
public static String getIndicatorValue(Indicator indicator){
  IndicatorsSwitch<String> mySwitch=new IndicatorsSwitch<String>(){
    @Override public String caseAverageLengthIndicator(    AverageLengthIndicator object){
      return createStandardNumber(object.getAverageLength());
    }
    @Override public String caseBlankCountIndicator(    BlankCountIndicator object){
      return String.valueOf(object.getBlankCount());
    }
    @Override public String caseDefValueCountIndicator(    DefValueCountIndicator object){
      return String.valueOf(object.getDefaultValCount());
    }
    @Override public String caseDistinctCountIndicator(    DistinctCountIndicator object){
      return String.valueOf(object.getDistinctValueCount());
    }
    @Override public String caseDuplicateCountIndicator(    DuplicateCountIndicator object){
      return String.valueOf(object.getDuplicateValueCount());
    }
    @Override public String caseMaxLengthIndicator(    MaxLengthIndicator object){
      return String.valueOf(object.getLength());
    }
    @Override public String caseMeanIndicator(    MeanIndicator object){
      return createStandardNumber(object.getMean());
    }
    @Override public String caseMedianIndicator(    MedianIndicator object){
      return createStandardNumber(object.getMedian());
    }
    @Override public String caseMinLengthIndicator(    MinLengthIndicator object){
      return String.valueOf(object.getLength());
    }
    @Override public String caseModeIndicator(    ModeIndicator object){
      return String.valueOf(object.getMode());
    }
    @Override public String caseNullCountIndicator(    NullCountIndicator object){
      return String.valueOf(object.getNullCount());
    }
    @Override public String casePatternMatchingIndicator(    PatternMatchingIndicator object){
      return String.valueOf(object.getMatchingValueCount());
    }
    @Override public String caseRowCountIndicator(    RowCountIndicator object){
      return String.valueOf(object.getCount());
    }
    @Override public String caseUniqueCountIndicator(    UniqueCountIndicator object){
      return String.valueOf(object.getUniqueValueCount());
    }
    @Override public String caseValueIndicator(    ValueIndicator object){
      return object.getValue();
    }
    @Override public String caseValidPhoneCountIndicator(    ValidPhoneCountIndicator object){
      return String.valueOf(object.getValidPhoneNumCount());
    }
    @Override public String casePossiblePhoneCountIndicator(    PossiblePhoneCountIndicator object){
      return String.valueOf(object.getPossiblePhoneCount());
    }
    @Override public String caseValidRegCodeCountIndicator(    ValidRegCodeCountIndicator object){
      return String.valueOf(object.getValidRegCount());
    }
    @Override public String caseInvalidRegCodeCountIndicator(    InvalidRegCodeCountIndicator object){
      return String.valueOf(object.getInvalidRegCount());
    }
    @Override public String caseWellFormE164PhoneCountIndicator(    WellFormE164PhoneCountIndicator object){
      return String.valueOf(object.getWellFormE164PhoneCount());
    }
    @Override public String caseWellFormIntePhoneCountIndicator(    WellFormIntePhoneCountIndicator object){
      return String.valueOf(object.getWellFormIntePhoneCount());
    }
    @Override public String caseWellFormNationalPhoneCountIndicator(    WellFormNationalPhoneCountIndicator object){
      return String.valueOf(object.getWellFormNatiPhoneCount());
    }
  }
;
  IndicatorSqlSwitch<String> sqlSwitch=new IndicatorSqlSwitch<String>(){
    @Override public String caseWhereRuleIndicator(    WhereRuleIndicator object){
      return String.valueOf(object.getUserCount());
    }
    @Override public String caseUserDefIndicator(    UserDefIndicator object){
      if (object instanceof UserDefIndicator) {
        UserDefIndicator userDefineIndicator=object;
        IndicatorCategory category=IndicatorCategoryHelper.getCategory(userDefineIndicator.getIndicatorDefinition());
        if (IndicatorCategoryHelper.isUserDefRealValue(category)) {
          return String.valueOf(userDefineIndicator.getRealValue());
        }
      }
      return String.valueOf(object.getUserCount());
    }
    @Override public String caseJavaUserDefIndicator(    JavaUserDefIndicator object){
      return String.valueOf(object.getUserCount());
    }
  }
;
  String result=mySwitch.doSwitch(indicator);
  return result == null ? sqlSwitch.doSwitch(indicator) : result;
}

Fixed version (ground truth):
/** 
 * DOC bZhou Comment method "getIndicatorValue".
 * @param indicator
 * @return
 */
public static String getIndicatorValue(Indicator indicator){
  IndicatorsSwitch<String> mySwitch=new IndicatorsSwitch<String>(){
    @Override public String caseAverageLengthIndicator(    AverageLengthIndicator object){
      return createStandardNumber(object.getAverageLength());
    }
    @Override public String caseBlankCountIndicator(    BlankCountIndicator object){
      return String.valueOf(object.getBlankCount());
    }
    @Override public String caseDefValueCountIndicator(    DefValueCountIndicator object){
      return String.valueOf(object.getDefaultValCount());
    }
    @Override public String caseDistinctCountIndicator(    DistinctCountIndicator object){
      return String.valueOf(object.getDistinctValueCount());
    }
    @Override public String caseDuplicateCountIndicator(    DuplicateCountIndicator object){
      return String.valueOf(object.getDuplicateValueCount());
    }
    @Override public String caseMaxLengthIndicator(    MaxLengthIndicator object){
      return String.valueOf(object.getLength());
    }
    @Override public String caseMeanIndicator(    MeanIndicator object){
      return createStandardNumber(object.getMean());
    }
    @Override public String caseMedianIndicator(    MedianIndicator object){
      return createStandardNumber(object.getMedian());
    }
    @Override public String caseMinLengthIndicator(    MinLengthIndicator object){
      return String.valueOf(object.getLength());
    }
    @Override public String caseModeIndicator(    ModeIndicator object){
      return String.valueOf(object.getMode());
    }
    @Override public String caseNullCountIndicator(    NullCountIndicator object){
      return String.valueOf(object.getNullCount());
    }
    @Override public String casePatternMatchingIndicator(    PatternMatchingIndicator object){
      return String.valueOf(object.getMatchingValueCount());
    }
    @Override public String caseRowCountIndicator(    RowCountIndicator object){
      return String.valueOf(object.getCount());
    }
    @Override public String caseUniqueCountIndicator(    UniqueCountIndicator object){
      return String.valueOf(object.getUniqueValueCount());
    }
    @Override public String caseValueIndicator(    ValueIndicator object){
      return object.getValue();
    }
    @Override public String caseValidPhoneCountIndicator(    ValidPhoneCountIndicator object){
      return String.valueOf(object.getValidPhoneNumCount());
    }
    @Override public String casePossiblePhoneCountIndicator(    PossiblePhoneCountIndicator object){
      return String.valueOf(object.getPossiblePhoneCount());
    }
    @Override public String caseValidRegCodeCountIndicator(    ValidRegCodeCountIndicator object){
      return String.valueOf(object.getValidRegCount());
    }
    @Override public String caseInvalidRegCodeCountIndicator(    InvalidRegCodeCountIndicator object){
      return String.valueOf(object.getInvalidRegCount());
    }
    @Override public String caseWellFormE164PhoneCountIndicator(    WellFormE164PhoneCountIndicator object){
      return String.valueOf(object.getWellFormE164PhoneCount());
    }
    @Override public String caseWellFormIntePhoneCountIndicator(    WellFormIntePhoneCountIndicator object){
      return String.valueOf(object.getWellFormIntePhoneCount());
    }
    @Override public String caseWellFormNationalPhoneCountIndicator(    WellFormNationalPhoneCountIndicator object){
      return String.valueOf(object.getWellFormNatiPhoneCount());
    }
  }
;
  IndicatorSqlSwitch<String> sqlSwitch=new IndicatorSqlSwitch<String>(){
    @Override public String caseWhereRuleIndicator(    WhereRuleIndicator object){
      return String.valueOf(object.getUserCount());
    }
    @Override public String caseUserDefIndicator(    UserDefIndicator object){
      if (object instanceof UserDefIndicator) {
        UserDefIndicator userDefineIndicator=object;
        IndicatorCategory category=IndicatorCategoryHelper.getCategory(userDefineIndicator.getIndicatorDefinition());
        if (IndicatorCategoryHelper.isUserDefRealValue(category)) {
          return String.valueOf(userDefineIndicator.getRealValue());
        }
      }
      return String.valueOf(object.getIntegerValue());
    }
    @Override public String caseJavaUserDefIndicator(    JavaUserDefIndicator object){
      return String.valueOf(object.getUserCount());
    }
  }
;
  String result=mySwitch.doSwitch(indicator);
  return result == null ? sqlSwitch.doSwitch(indicator) : result;
}