Program: 17960
Project: 17960
Buggy source:
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException {
  if (node instanceof FieldQueryNode) {
    QueryConfigHandler config=getQueryConfigHandler();
    if (!((FieldQueryNode)node).getField().equals(config.get(AqpAdsabsQueryConfigHandler.ConfigurationKeys.UNFIELDED_SEARCH_FIELD))) {
      return node;
    }
    if (!config.has(AqpAdsabsQueryConfigHandler.ConfigurationKeys.FUNCTION_QUERY_BUILDER_CONFIG)) {
      throw new QueryNodeException(new MessageImpl("String_Node_Str","String_Node_Str"));
    }
    String funcName="String_Node_Str";
    String subQuery=((FieldQueryNode)node).getTextAsString();
    if (node instanceof AqpNonAnalyzedQueryNode) {
      funcName="String_Node_Str";
    }
 else {
      if (node instanceof QuotedFieldQueryNode) {
        subQuery="String_Node_Str" + subQuery + "String_Node_Str";
      }
      if (node.getParent() instanceof SlopQueryNode) {
        subQuery=subQuery + "String_Node_Str" + ((SlopQueryNode)node.getParent()).getValue();
        if (node.getParent().getParent() instanceof BoostQueryNode) {
          subQuery=subQuery + "String_Node_Str" + ((BoostQueryNode)node.getParent().getParent()).getValue();
        }
      }
 else       if (node.getParent() instanceof BoostQueryNode) {
        subQuery=subQuery + "String_Node_Str" + ((BoostQueryNode)node.getParent()).getValue();
      }
    }
    node.setTag("String_Node_Str",subQuery);
    AqpFunctionQueryBuilder builder=config.get(AqpAdsabsQueryConfigHandler.ConfigurationKeys.FUNCTION_QUERY_BUILDER_CONFIG).getBuilder(funcName,(QueryNode)node,config);
    if (builder == null) {
      throw new QueryNodeException(new MessageImpl(QueryParserMessages.INVALID_SYNTAX,"String_Node_Str" + funcName + "String_Node_Str"));
    }
    List<OriginalInput> fValues=new ArrayList<OriginalInput>();
    fValues.add(new OriginalInput(subQuery,-1,-1));
    return new AqpFunctionQueryNode(funcName,builder,fValues);
  }
  return node;
}

Fixed version (ground truth):
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException {
  if (node instanceof FieldQueryNode && !(node instanceof AqpAdsabsRegexQueryNode)) {
    QueryConfigHandler config=getQueryConfigHandler();
    if (!((FieldQueryNode)node).getField().equals(config.get(AqpAdsabsQueryConfigHandler.ConfigurationKeys.UNFIELDED_SEARCH_FIELD))) {
      return node;
    }
    if (!config.has(AqpAdsabsQueryConfigHandler.ConfigurationKeys.FUNCTION_QUERY_BUILDER_CONFIG)) {
      throw new QueryNodeException(new MessageImpl("String_Node_Str","String_Node_Str"));
    }
    String funcName="String_Node_Str";
    String subQuery=((FieldQueryNode)node).getTextAsString();
    if (node instanceof AqpNonAnalyzedQueryNode) {
      funcName="String_Node_Str";
    }
 else {
      if (node instanceof QuotedFieldQueryNode) {
        subQuery="String_Node_Str" + subQuery + "String_Node_Str";
      }
      if (node.getParent() instanceof SlopQueryNode) {
        subQuery=subQuery + "String_Node_Str" + ((SlopQueryNode)node.getParent()).getValue();
        if (node.getParent().getParent() instanceof BoostQueryNode) {
          subQuery=subQuery + "String_Node_Str" + ((BoostQueryNode)node.getParent().getParent()).getValue();
        }
      }
 else       if (node.getParent() instanceof BoostQueryNode) {
        subQuery=subQuery + "String_Node_Str" + ((BoostQueryNode)node.getParent()).getValue();
      }
    }
    node.setTag("String_Node_Str",subQuery);
    AqpFunctionQueryBuilder builder=config.get(AqpAdsabsQueryConfigHandler.ConfigurationKeys.FUNCTION_QUERY_BUILDER_CONFIG).getBuilder(funcName,(QueryNode)node,config);
    if (builder == null) {
      throw new QueryNodeException(new MessageImpl(QueryParserMessages.INVALID_SYNTAX,"String_Node_Str" + funcName + "String_Node_Str"));
    }
    List<OriginalInput> fValues=new ArrayList<OriginalInput>();
    fValues.add(new OriginalInput(subQuery,-1,-1));
    return new AqpFunctionQueryNode(funcName,builder,fValues);
  }
  return node;
}