Program: 188233
Project: 188233
Buggy source:
private static void parseFilterParameter(StringBuilder ret,FilterParameter parameter,boolean prefixWithANDOperatorIfBuilderNotEmpty) throws RequestNotValidException {
  if (parameter instanceof SimpleFilterParameter) {
    SimpleFilterParameter simplePar=(SimpleFilterParameter)parameter;
    appendExactMatch(ret,simplePar.getName(),simplePar.getValue(),true,prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof OneOfManyFilterParameter) {
    OneOfManyFilterParameter param=(OneOfManyFilterParameter)parameter;
    appendValuesUsingOROperator(ret,param.getName(),param.getValues(),prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof BasicSearchFilterParameter) {
    BasicSearchFilterParameter param=(BasicSearchFilterParameter)parameter;
    appendBasicSearch(ret,param.getName(),param.getValue(),"String_Node_Str",prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof EmptyKeyFilterParameter) {
    EmptyKeyFilterParameter param=(EmptyKeyFilterParameter)parameter;
    appendANDOperator(ret,true);
    ret.append("String_Node_Str" + param.getName() + "String_Node_Str");
  }
 else   if (parameter instanceof DateRangeFilterParameter) {
    DateRangeFilterParameter param=(DateRangeFilterParameter)parameter;
    appendRange(ret,param.getName(),Date.class,param.getFromValue(),String.class,processToDate(param.getToValue(),param.getGranularity(),false),prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof DateIntervalFilterParameter) {
    DateIntervalFilterParameter param=(DateIntervalFilterParameter)parameter;
    appendRangeInterval(ret,param.getFromName(),param.getToName(),param.getFromValue(),param.getToValue(),param.getGranularity(),prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof LongRangeFilterParameter) {
    LongRangeFilterParameter param=(LongRangeFilterParameter)parameter;
    appendRange(ret,param.getName(),Long.class,param.getFromValue(),Long.class,param.getToValue(),prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof NotSimpleFilterParameter) {
    NotSimpleFilterParameter notSimplePar=(NotSimpleFilterParameter)parameter;
    appendNotExactMatch(ret,notSimplePar.getName(),notSimplePar.getValue(),true,prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof OrFiltersParameters || parameter instanceof AndFiltersParameters) {
    FiltersParameters filters=(FiltersParameters)parameter;
    appendFiltersWithOperator(ret,parameter instanceof OrFiltersParameters ? "String_Node_Str" : "String_Node_Str",filters.getValues(),prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else {
    LOGGER.error("String_Node_Str",parameter.getClass().getName());
    throw new RequestNotValidException("String_Node_Str" + parameter.getClass().getName());
  }
}

Fixed version (ground truth):
private static void parseFilterParameter(StringBuilder ret,FilterParameter parameter,boolean prefixWithANDOperatorIfBuilderNotEmpty) throws RequestNotValidException {
  if (parameter instanceof SimpleFilterParameter) {
    SimpleFilterParameter simplePar=(SimpleFilterParameter)parameter;
    appendExactMatch(ret,simplePar.getName(),simplePar.getValue(),true,prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof OneOfManyFilterParameter) {
    OneOfManyFilterParameter param=(OneOfManyFilterParameter)parameter;
    appendValuesUsingOROperator(ret,param.getName(),param.getValues(),prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof BasicSearchFilterParameter) {
    BasicSearchFilterParameter param=(BasicSearchFilterParameter)parameter;
    appendBasicSearch(ret,param.getName(),param.getValue(),"String_Node_Str",prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof EmptyKeyFilterParameter) {
    EmptyKeyFilterParameter param=(EmptyKeyFilterParameter)parameter;
    appendANDOperator(ret,true);
    ret.append("String_Node_Str" + param.getName() + "String_Node_Str");
  }
 else   if (parameter instanceof DateRangeFilterParameter) {
    DateRangeFilterParameter param=(DateRangeFilterParameter)parameter;
    appendRange(ret,param.getName(),Date.class,param.getFromValue(),String.class,processToDate(param.getToValue(),param.getGranularity(),param.getTimeZoneOffset(),false),prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof DateIntervalFilterParameter) {
    DateIntervalFilterParameter param=(DateIntervalFilterParameter)parameter;
    appendRangeInterval(ret,param.getFromName(),param.getToName(),param.getFromValue(),param.getToValue(),param.getGranularity(),param.getTimeZoneOffset(),prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof LongRangeFilterParameter) {
    LongRangeFilterParameter param=(LongRangeFilterParameter)parameter;
    appendRange(ret,param.getName(),Long.class,param.getFromValue(),Long.class,param.getToValue(),prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof NotSimpleFilterParameter) {
    NotSimpleFilterParameter notSimplePar=(NotSimpleFilterParameter)parameter;
    appendNotExactMatch(ret,notSimplePar.getName(),notSimplePar.getValue(),true,prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else   if (parameter instanceof OrFiltersParameters || parameter instanceof AndFiltersParameters) {
    FiltersParameters filters=(FiltersParameters)parameter;
    appendFiltersWithOperator(ret,parameter instanceof OrFiltersParameters ? "String_Node_Str" : "String_Node_Str",filters.getValues(),prefixWithANDOperatorIfBuilderNotEmpty);
  }
 else {
    LOGGER.error("String_Node_Str",parameter.getClass().getName());
    throw new RequestNotValidException("String_Node_Str" + parameter.getClass().getName());
  }
}