Program: 7504
Project: 7504
Buggy source:
/** 
 * Processes a query API servlet request.
 * @param request        the request to process
 * @param path           the query path
 */
private void processQuery(Request request,String path){
  DataQuery query=new DataQuery(path);
  Data res=null;
  Data dir=null;
  Data obj=null;
  String[] list;
  try {
    if (!SecurityContext.hasAdmin()) {
      LOG.info("String_Node_Str" + request.getRemoteAddr() + "String_Node_Str"+ SecurityContext.currentUser());
      throw new ProcedureException("String_Node_Str");
    }
    if (query.isRoot()) {
      dir=new Data();
      list=ctx.getDataStore().findTypes();
      for (int i=0; i < list.length; i++) {
        dir.add("String_Node_Str" + list[i] + "String_Node_Str");
      }
      obj=new Data();
      list=ctx.getDataStore().findDataIds(null);
      for (int i=0; i < list.length; i++) {
        obj.add("String_Node_Str" + list[i]);
      }
      res=new Data();
      res.set("String_Node_Str",dir);
      res.set("String_Node_Str",obj);
    }
 else     if (query.isIndex) {
      obj=new Data();
      list=ctx.getDataStore().findDataIds(query.path[0]);
      for (int i=0; i < list.length; i++) {
        obj.add("String_Node_Str" + list[i]);
      }
      res=new Data();
      res.set("String_Node_Str",obj);
    }
 else     if (query.path.length == 1) {
      res=ctx.getDataStore().readData(null,query.path[0]);
    }
 else {
      res=ctx.getDataStore().readData(query.path[0],query.path[1]);
    }
    if (isMimeMatch(request,MIME_JSON)) {
      request.sendData("String_Node_Str",JsSerializer.serialize(res));
    }
 else     if (isMimeMatch(request,MIME_XML)) {
      request.sendData("String_Node_Str",XmlSerializer.serialize(res));
    }
 else {
      StringBuffer html=new StringBuffer();
      html.append("String_Node_Str");
      html.append(request.getRootPath());
      html.append("String_Node_Str");
      html.append("String_Node_Str");
      html.append("String_Node_Str");
      html.append("String_Node_Str");
      html.append("String_Node_Str");
      if (query.isRoot()) {
        html.append("String_Node_Str");
      }
 else {
        html.append("String_Node_Str");
        html.append(StringUtils.repeat("String_Node_Str",query.depth()));
        html.append("String_Node_Str");
      }
      for (int i=0; i < query.path.length; i++) {
        if (i + 1 < query.path.length) {
          html.append("String_Node_Str");
          html.append("String_Node_Str");
          html.append(StringUtils.repeat("String_Node_Str",query.depth() - i - 1));
          html.append("String_Node_Str");
          html.append(query.path[i]);
          html.append("String_Node_Str");
        }
 else {
          html.append("String_Node_Str");
          html.append("String_Node_Str");
          html.append(query.path[i]);
        }
        html.append("String_Node_Str");
      }
      html.append("String_Node_Str");
      html.append("String_Node_Str");
      html.append(HtmlSerializer.serialize(res));
      html.append("String_Node_Str");
      request.sendData("String_Node_Str",html.toString());
    }
  }
 catch (  Exception e) {
    res=new Data();
    res.set("String_Node_Str",e.getMessage());
    if (isMimeMatch(request,MIME_JSON)) {
      request.sendData("String_Node_Str",JsSerializer.serialize(res));
    }
 else     if (isMimeMatch(request,MIME_XML)) {
      request.sendData("String_Node_Str",XmlSerializer.serialize(res));
    }
 else {
      request.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"String_Node_Str",e.getMessage());
    }
  }
}

Fixed version (ground truth):
/** 
 * Processes a query API servlet request.
 * @param request        the request to process
 * @param path           the query path
 */
private void processQuery(Request request,String path){
  DataQuery query=new DataQuery(path);
  Data res=null;
  Data dir=null;
  Data obj=null;
  String[] list;
  boolean createLinks;
  try {
    if (!SecurityContext.hasAdmin()) {
      LOG.info("String_Node_Str" + request.getRemoteAddr() + "String_Node_Str"+ SecurityContext.currentUser());
      throw new ProcedureException("String_Node_Str");
    }
    createLinks=!isMimeMatch(request,MIME_JSON) && !isMimeMatch(request,MIME_XML);
    if (query.isRoot()) {
      dir=new Data();
      list=ctx.getDataStore().findTypes();
      for (int i=0; i < list.length; i++) {
        if (createLinks) {
          dir.add("String_Node_Str" + list[i] + "String_Node_Str");
        }
 else {
          dir.add(list[i]);
        }
      }
      obj=new Data();
      list=ctx.getDataStore().findDataIds(null);
      for (int i=0; i < list.length; i++) {
        if (createLinks) {
          obj.add("String_Node_Str" + list[i]);
        }
 else {
          obj.add(list[i]);
        }
      }
      res=new Data();
      res.set("String_Node_Str",dir);
      res.set("String_Node_Str",obj);
    }
 else     if (query.isIndex) {
      obj=new Data();
      list=ctx.getDataStore().findDataIds(query.path[0]);
      for (int i=0; i < list.length; i++) {
        if (createLinks) {
          obj.add("String_Node_Str" + list[i]);
        }
 else {
          obj.add(list[i]);
        }
      }
      res=new Data();
      res.set("String_Node_Str",obj);
    }
 else     if (query.path.length == 1) {
      res=ctx.getDataStore().readData(null,query.path[0]);
    }
 else {
      res=ctx.getDataStore().readData(query.path[0],query.path[1]);
    }
    if (isMimeMatch(request,MIME_JSON)) {
      request.sendData("String_Node_Str",JsSerializer.serialize(res));
    }
 else     if (isMimeMatch(request,MIME_XML)) {
      request.sendData("String_Node_Str",XmlSerializer.serialize(res));
    }
 else {
      StringBuffer html=new StringBuffer();
      html.append("String_Node_Str");
      html.append(request.getRootPath());
      html.append("String_Node_Str");
      html.append("String_Node_Str");
      html.append("String_Node_Str");
      html.append("String_Node_Str");
      html.append("String_Node_Str");
      if (query.isRoot()) {
        html.append("String_Node_Str");
      }
 else {
        html.append("String_Node_Str");
        html.append(StringUtils.repeat("String_Node_Str",query.depth()));
        html.append("String_Node_Str");
      }
      for (int i=0; i < query.path.length; i++) {
        if (i + 1 < query.path.length) {
          html.append("String_Node_Str");
          html.append("String_Node_Str");
          html.append(StringUtils.repeat("String_Node_Str",query.depth() - i - 1));
          html.append("String_Node_Str");
          html.append(query.path[i]);
          html.append("String_Node_Str");
        }
 else {
          html.append("String_Node_Str");
          html.append("String_Node_Str");
          html.append(query.path[i]);
        }
        html.append("String_Node_Str");
      }
      html.append("String_Node_Str");
      html.append("String_Node_Str");
      html.append(HtmlSerializer.serialize(res));
      html.append("String_Node_Str");
      request.sendData("String_Node_Str",html.toString());
    }
  }
 catch (  Exception e) {
    res=new Data();
    res.set("String_Node_Str",e.getMessage());
    if (isMimeMatch(request,MIME_JSON)) {
      request.sendData("String_Node_Str",JsSerializer.serialize(res));
    }
 else     if (isMimeMatch(request,MIME_XML)) {
      request.sendData("String_Node_Str",XmlSerializer.serialize(res));
    }
 else {
      request.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"String_Node_Str",e.getMessage());
    }
  }
}